summaryrefslogtreecommitdiffstats
path: root/git/bin/git-whoami
diff options
context:
space:
mode:
Diffstat (limited to 'git/bin/git-whoami')
-rwxr-xr-xgit/bin/git-whoami33
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