diff options
Diffstat (limited to '')
-rwxr-xr-x | git/bin/git-whoami | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/git/bin/git-whoami b/git/bin/git-whoami new file mode 100755 index 0000000..50f432a --- /dev/null +++ b/git/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="${GIT_AUTHOR_NAME:-$(get_name)}" +GIT_AUTHOR_EMAIL="${GIT_AUTHOR_EMAIL:-$(get_email)}" +GIT_COMMITTER_NAME="${GIT_COMMITER_NAME:-$(get_name)}" +GIT_COMMITTER_EMAIL="${GIT_COMMITER_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 |