]> gitweb.fluxo.info Git - puppet-bootstrap.git/commitdiff
Adding subtrees script and updating submodules script
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 3 Mar 2014 18:08:15 +0000 (15:08 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 3 Mar 2014 18:08:15 +0000 (15:08 -0300)
bin/submodules
bin/subtrees [new file with mode: 0755]

index f004f2bea732f1a766e0c105a0558cb477f48060..f79b6357a2eb351db868e2dd6fe8025c3855e884 100755 (executable)
@@ -21,6 +21,9 @@ for repo in $repos; do
   if [ ! -d "modules/$module" ]; then
     echo "Processing puppet module $module..."
     git submodule add $repo modules/$module
+  elif [ -e "modules/$module/.git" ]; then
+    # The puppet module exists and is a git submodule, so update it
+    ( cd module/$module && git pull origin master )
   fi
 done
 
diff --git a/bin/subtrees b/bin/subtrees
new file mode 100755 (executable)
index 0000000..1858a48
--- /dev/null
@@ -0,0 +1,41 @@
+#!/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
+
+# 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 "modules/$module" ]; then
+    echo "Processing puppet module $module..."
+    git remote  add $module $repo
+    git subtree add --prefix 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 modules/$module $module master --squash
+  fi
+done