#!/usr/bin/env bash # # @license Apache-2.0 # # Copyright (c) 2017 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Prints the number of commits per weekday. # # # * `git log` # - Show commit logs. # * `grep '^Date'` # - Extract the line which begins with `Date` from each log. # * `awk '{}'` # - From each date line, extract the weekday (`$2`). # * `sort` # - Sort in lexicographic order. # * `uniq -c` # - Remove repeated lines and count the repeats to show weekday totals. # * `awk '{}'` # - Sort the weekdays from Monday to Sunday. git log | grep '^Date' | awk '{print $2}' | sort | uniq -c | awk ' BEGIN { split("Mon Tue Wed Thu Fri Sat Sun", days); } { lines[$2] = $2 OFS $1 } END { for (i = 1; i <= 7; i++) { print lines[days[i]] } } '