aboutsummaryrefslogtreecommitdiff
path: root/puppet/bin/submodules
diff options
context:
space:
mode:
Diffstat (limited to 'puppet/bin/submodules')
-rwxr-xr-xpuppet/bin/submodules38
1 files changed, 38 insertions, 0 deletions
diff --git a/puppet/bin/submodules b/puppet/bin/submodules
new file mode 100755
index 0000000..960d290
--- /dev/null
+++ b/puppet/bin/submodules
@@ -0,0 +1,38 @@
+#!/bin/bash
+#
+# Setup submodules.
+#
+
+# Parameters
+DIRNAME="`dirname $0`"
+
+# Usage
+function usage {
+ echo "Usage: $1 add-submodules <DIR>"
+ exit $2
+}
+
+# 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 submodules
+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 submodule add -f $repo $PUPPET_FOLDER/modules/$module
+ elif [ -e "modules/$module/.git" ]; then
+ # The puppet module exists and is a git submodule, so update it
+ ( cd $PUPPET_FOLDER/modules/$module && git pull origin master )
+ fi
+done
+
+# Update all modules
+git submodule update --init