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>&-