diff options
Diffstat (limited to '')
-rwxr-xr-x | bin/git-whoami | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/bin/git-whoami b/bin/git-whoami new file mode 100755 index 0000000..9cab9bc --- /dev/null +++ b/bin/git-whoami @@ -0,0 +1,33 @@ +#!/bin/sh + +# git-whoami +# Author: Peter Eisentraut <peter@eisentraut.org> +# Created: 2011-10-27 +# License: WTFPL; see http://sam.zoy.org/wtfpl/ + +# exact logic in ident.c in git source tree + +set -e + +get_email() { + git config user.email || ( [ -n "$EMAIL" ] && echo "$EMAIL" ) || echo "$(id -nu)@$(hostname --fqdn)" +} + +get_name() { + git config user.name || getent passwd $(id -un) | cut -d : -f 5 | cut -d , -f 1 +} + +: ${GIT_AUTHOR_NAME=$(get_name)} +: ${GIT_COMMITTER_NAME=$(get_name)} +: ${GIT_AUTHOR_EMAIL=$(get_email)} +: ${GIT_COMMITTER_EMAIL=$(get_email)} + +author="$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL>" +commit="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" + +if [ "$author" = "$commit" ]; then + echo "$author" +else + echo "Author: $author" + echo "Commit: $commit" +fi |