X-Git-Url: https://git.mxchange.org/?p=jprojects-scripts.git;a=blobdiff_plain;f=pull-stick.sh;h=f1f16dd37f9d3f0b5e9abfde61677d510b5d967f;hp=7f87871af1e076e39093a229afba3070060c3947;hb=HEAD;hpb=00e0cb0a0eea6d14d9d04d7083f9e3c2169a6c17 diff --git a/pull-stick.sh b/pull-stick.sh index 7f87871..3406617 100755 --- a/pull-stick.sh +++ b/pull-stick.sh @@ -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