mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 07:26:17 -04:00
57 lines
970 B
Bash
Executable file
57 lines
970 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
LIST=false
|
|
NO_EMAIL=false
|
|
FILE=""
|
|
EDITOR=$(git var GIT_EDITOR)
|
|
|
|
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 test "$FILE" = ""; then
|
|
FILE=$(ls | egrep 'authors|contributors' -i|head -n1)
|
|
if test "$FILE" = ""; then
|
|
FILE='AUTHORS'
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# list authors sorted by number of commits (descending).
|
|
#
|
|
|
|
authors() {
|
|
if $NO_EMAIL; then
|
|
# eamil will be used to uniq authors.
|
|
git shortlog -sne | awk '{$1=""; sub(" ", ""); print}' | awk -F'<' '!x[$1]++' | awk -F'<' '!x[$2]++' \
|
|
| awk -F'<' '{gsub(/ +$/, "", $1); print $1}'
|
|
else
|
|
git shortlog -sne | awk '{$1=""; sub(" ", ""); print}' | awk -F'<' '!x[$1]++' | awk -F'<' '!x[$2]++'
|
|
fi
|
|
}
|
|
|
|
#
|
|
# authors.
|
|
#
|
|
|
|
if $LIST; then
|
|
authors
|
|
else
|
|
authors >> $FILE
|
|
test -n "$EDITOR" && $EDITOR $FILE
|
|
fi
|