From ac627aacf00c2f888f21c6f108931dea38260f73 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 3 Sep 2013 15:09:39 +0200 Subject: reorganized directory layout --- git/superproject-post-push.sh | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 git/superproject-post-push.sh (limited to 'git') diff --git a/git/superproject-post-push.sh b/git/superproject-post-push.sh new file mode 100755 index 0000000..d680a94 --- /dev/null +++ b/git/superproject-post-push.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +# how to use: +# put all of this in some directory (eg. /home/micah/bin/superproject-post-push.sh) and then do this in the git submodule directory: +# micah@minnow:~/leap/puppet/modules/apt$ git config alias.xpush "push && /home/micah/bin/superproject-post-push.sh" + +# use git xpush for pushing + +# this assumes a couple things: +# 1. you do the commit in the top level of the submodule (not any subdirectory within) +# 2. you have no local, uncomitted changes in your superproject when you do any submodule commit + +# exit on any error +set -e + +# change this variable to your superproject checkout +superproject=${HOME}/leap/puppet + +submodule_base=`basename $PWD` +submodule=${submodule_base#puppet_} + +# check out the latest version of the superproject +# note: this part is fragile, because if you have local, uncomitted changes in your superproject, then this pull will fail +cd ${superproject} +git pull +git submodule update --init + +# check out latest version of submodule +# according to https://we.riseup.net/riseup+tech/puppet-git-submodules +cd ${superproject}/modules/${submodule} +git remote update +git merge origin/master + +# commit and push the submodule update commit +cd .. +git add $submodule +git commit -m "automatic update of submodule $submodule_base" +git push -- cgit v1.2.3