aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2018-11-13 22:02:48 -0200
committerEuAndreh <eu@euandre.org>2018-11-13 22:02:48 -0200
commit7d942bac7d865157c4a0e0057373a87da3fc808c (patch)
treeea1078f1c84d79a60e416478cabc4bd2d0c54359 /scripts
parentAdd boomerang repo to mrconfig.ini. (diff)
downloaddotfiles-7d942bac7d865157c4a0e0057373a87da3fc808c.tar.gz
dotfiles-7d942bac7d865157c4a0e0057373a87da3fc808c.tar.xz
Add git-blame-someonelse script.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/git-blame-someone-else21
1 files changed, 21 insertions, 0 deletions
diff --git a/scripts/git-blame-someone-else b/scripts/git-blame-someone-else
new file mode 100755
index 0000000..dd71826
--- /dev/null
+++ b/scripts/git-blame-someone-else
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+# Taken from https://github.com/jayphelps/git-blame-someone-else/
+
+if [ $# -ne 2 ]; then
+ >&2 echo "Usage: $0 <author> <commit>"
+ exit 1
+fi
+
+AUTHOR=$1
+AUTHOR_NAME=$(echo $AUTHOR | perl -wlne '/^(.*?)\s*<.*>$/ and print $1')
+AUTHOR_EMAIL=$(echo $AUTHOR | perl -wlne '/^.*\s*<(.*)>$/ and print $1')
+COMMIT=$(git rev-parse --short $2)
+
+{
+ GIT_SEQUENCE_EDITOR="sed -i -e 's/^pick $COMMIT/edit $COMMIT/'" git rebase -i $COMMIT~1^^
+ GIT_COMMITTER_NAME="$AUTHOR_NAME" GIT_COMMITTER_EMAIL="$AUTHOR_EMAIL" git commit --amend --no-edit --author="$AUTHOR"
+ # git rebase --continue
+} &> /dev/null
+
+echo "$AUTHOR_NAME is now the author of $COMMIT. You're officially an asshole.";