summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xupdate_all_submodules33
1 files changed, 33 insertions, 0 deletions
diff --git a/update_all_submodules b/update_all_submodules
new file mode 100755
index 0000000..74cdfbd
--- /dev/null
+++ b/update_all_submodules
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+PARENTDIR=$PWD
+echo "Working in $PARENTDIR"
+
+exec 3< submodules
+while read <&3
+do
+ cd $PARENTDIR
+ DIR2UPDATE=$REPLY
+ if [[ $DIR2UPDATE != "" ]]; then
+ echo "Attempting to reset submodule $DIR2UPDATE"
+ cd $PARENTDIR/$DIR2UPDATE/..
+ while [[ ! -d .git ]]; do
+ cd ../
+ done
+ git submodule init
+ git submodule update
+ cd $PARENTDIR/$DIR2UPDATE
+ git reset --hard HEAD
+ git clean -d -x -f
+ git checkout master
+ git pull
+ cd ..
+ while [[ ! -d .git ]]; do
+ cd ../
+ done
+ echo "Committing changes to $PWD"
+ git commit -a -m "Reset submodule to latest HEAD"
+ git push origin master
+ fi
+done
+exec 3>&-