summaryrefslogtreecommitdiff
path: root/bin/git-dotfiles-update-master
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2018-05-11 11:05:43 -0700
committerSean Whitton <spwhitton@spwhitton.name>2018-05-11 11:05:43 -0700
commit0b92c555beeee36677558a4a7aaaf63823b7cd24 (patch)
treeb068590d12538d6f876f193df6cb118d5d6e6c88 /bin/git-dotfiles-update-master
parent1bf3372ae4881f31d33ed573537ec8e8f302037f (diff)
downloaddotfiles-0b92c555beeee36677558a4a7aaaf63823b7cd24.tar.gz
first attempt at git-dotfiles-update-master
Diffstat (limited to 'bin/git-dotfiles-update-master')
-rwxr-xr-xbin/git-dotfiles-update-master20
1 files changed, 20 insertions, 0 deletions
diff --git a/bin/git-dotfiles-update-master b/bin/git-dotfiles-update-master
new file mode 100755
index 00000000..52f848af
--- /dev/null
+++ b/bin/git-dotfiles-update-master
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -e
+
+. $HOME/.shenv
+
+git fetch origin
+if git verify-commit --raw origin/master 2>&1 \
+ | grep "VALIDSIG .* 8DC2487E51ABDD90B5C4753F0F56D0553B6D411B"; then
+ # try to fast-forward first; if that fails, do a rebase
+ if ! git merge-ff master origin/master; then
+ branch=$(git rev-parse --abbrev-ref HEAD)
+ [ "$branch" = "master" ] || git checkout master
+ git rebase origin/master
+ [ "$branch" = "master" ] || git checkout "$branch"
+ fi
+else
+ echo >&2 "uh oh, dotfiles remote head is not PGP-signed by Sean"
+ exit 1
+fi