
| Current Path : /bin/X11/X11/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //bin/X11/X11/git-authors |
#!/usr/bin/env bash
# reset environment variables that could interfere with normal usage
unset GREP_OPTIONS
# put all utility functions here
# make a temporary file
git_extra_mktemp() {
mktemp -t "$(basename "$0")".XXXXXXX
}
#
# check whether current directory is inside a git repository
#
is_git_repo() {
git rev-parse --show-toplevel > /dev/null 2>&1
result=$?
if test $result != 0; then
>&2 echo 'Not a git repo!'
exit $result
fi
}
is_git_repo
#
# check whether current directory contains any git commit
#
has_git_commit() {
git rev-parse --short HEAD > /dev/null 2>&1
result=$?
if test $result != 0; then
>&2 echo 'Not git commit found!'
exit $result
fi
}
has_git_commit
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