#!/usr/bin/env bash LIST=false NO_EMAIL=false FILE="" while [[ $# -gt 0 ]]; do case $1 in -l|--list ) LIST=true shift ;; --no-email ) NO_EMAIL=true shift ;; * ) break esac done if ! $LIST; then FILE=$1 if [ -z "$FILE" ]; then FILE=$(find . -mindepth 1 -maxdepth 1 \( -iname '*authors*' -o -iname '*contributors*' \) | head -n1) if [ -z "$FILE" ]; then FILE='AUTHORS' fi fi fi # # list authors sorted by number of commits (descending). # authors() { if $NO_EMAIL; then # email will be used to uniq authors. git shortlog HEAD -sne | awk '{$1=""; sub(" ", ""); print}' | awk -F'<' '!x[$1]++' | awk -F'<' '!x[$2]++' \ | awk -F'<' '{gsub(/ +$/, "", $1); print $1}' else git shortlog HEAD -sne | awk '{$1=""; sub(" ", ""); print}' | awk -F'<' '!x[$1]++' | awk -F'<' '!x[$2]++' fi } # # authors. # if $LIST; then authors else authors >> "$FILE" fi