diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2020-10-01 15:02:47 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2020-10-01 15:02:47 -0300 |
commit | 765ca2bd25384c3d33d243a5b2f0aa419edcd8fa (patch) | |
tree | b59aa15319607ea45ba83516628539b420d8841b /puppet/bin/subtrees | |
parent | b0d7b1d90860f858578455c5cf695c062c0ade07 (diff) | |
parent | c212514035cffd38acbfac1413064937b28685b6 (diff) | |
download | semanticscuttle-765ca2bd25384c3d33d243a5b2f0aa419edcd8fa.tar.gz semanticscuttle-765ca2bd25384c3d33d243a5b2f0aa419edcd8fa.tar.bz2 |
Merge commit 'c212514035cffd38acbfac1413064937b28685b6' as 'puppet'
Diffstat (limited to 'puppet/bin/subtrees')
-rwxr-xr-x | puppet/bin/subtrees | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/puppet/bin/subtrees b/puppet/bin/subtrees new file mode 100755 index 0000000..19211f1 --- /dev/null +++ b/puppet/bin/subtrees @@ -0,0 +1,48 @@ +#!/bin/bash +# +# Setup subtrees. +# + +# Parameters +DIRNAME="`dirname $0`" + +# Usage +function usage { + echo "Usage: $1 add-submodules <DIR>" + exit $2 +} + +# Check for git-subtree +if ! which git-subtree &> /dev/null; then + echo "fatal: please install git-subtree" + exit 1 +fi + +# Set puppet folder +if [ -d "puppet" ]; then + PUPPET_FOLDER="puppet" +else + PUPPET_FOLDER="." +fi + +# Get module list +repos="`grep = $DIRNAME/../.mrconfig | cut -d = -f 2 | cut -d ' ' -f 4`" + +# Add subtrees +for repo in $repos; do + module="`basename $repo .git | sed -e s/^puppet-//`" + if [ ! -d "$PUPPET_FOLDER/modules/$module" ]; then + echo "Processing puppet module $module..." + git remote add $module $repo + git subtree add --prefix $PUPPET_FOLDER/modules/$module $module master --squash + elif [ ! -d "modules/$module/.git" ]; then + # The puppet module exists and is a subtree, so update it + if ! git remote | grep -qe "^$module$"; then + git remote add $module $repo + fi + + # Update subtrees + git fetch $module master + git subtree pull --prefix $PUPPET_FOLDER/modules/$module $module master --squash + fi +done |