Continued:
[jprojects-scripts.git] / pull-stick.sh
index 7f87871af1e076e39093a229afba3070060c3947..3406617efd9b1cb6f6a2e26782688d34a8f76fa9 100755 (executable)
@@ -2,18 +2,49 @@
 
 . ./.jprojects.sh || exit 255
 
-for ENTRY in ${LIST}; do
-       cd "${ENTRY}" || exit 255
+for project in ${LIST}; do
+       if [ ! -d "${JPROJECTS_HOME}/${project}" ]
+       then
+               echo "$0: Project '${project}' does not exist."
+               continue
+       fi
+
+       cd "${JPROJECTS_HOME}/${project}" || exit 255
+
+       if [ -n "$2" ]
+       then
+               git branch -D "$2"
+       fi
 
        if [ "$1" = "c" ]
        then
-               echo "$0: Checkout '${ENTRY}' ..."
-               git checkout -- .
+               echo "$0: Checkout '${project}' ..."
+               git checkout -- . || exit 255
+       elif [ "$1" = "r" ]
+       then
+               echo "$0: Resetting '${project}' ..."
+               git reset --hard || exit 255
        fi
 
-       echo "$0: Pulling '${ENTRY}' ..."
-       git pull transport master || exit 255
-       echo "$0: Rebasing '${ENTRY}' ..."
-       git rebase origin/master || exit 255
-       cd -
+       echo "$0: Pulling '${project}' ..."
+       if [ "$1" = "a" ]
+       then
+               git pull --all || exit 255
+       else
+               git pull -S origin master || exit 255
+               git fetch upstream || exit 255
+               git fetch transport || exit 255
+       fi
+
+       echo "$0: Merging upstream into '${project}' ..."
+       git merge -S upstream/master || exit 255
+
+       if [ "$1" != "s" -a "$1" != "a" ]
+       then
+               echo "$0: Rebasing '${project}' ..."
+               git rebase -Sm origin/master || exit 255
+       fi
 done
+
+echo "$0: All done."
+exit 0