Continued:
[jprojects-scripts.git] / push-stick.sh
index 332b4d03f5c52e06467bdd6e4b0c6a85d7a14c09..02f28847856183ae55f04be937689d4e7a4b5ec7 100755 (executable)
@@ -2,14 +2,15 @@
 
 . ./.jprojects.sh || exit 255
 
-TARGETS="d t u"
+TARGETS="o d t u"
+FORCE="--force"
 
 if [ "$1" = "a" ]
 then
        cd "${JPROJECTS_HOME}"
        for TARGET in ${TARGETS}; do
                echo "$0: Pushing for target '${TARGET}' ..."
-               $0 "${TARGET}" "1"
+               $0 "${TARGET}" "$2"
        done
 
        echo "$0: Pushed to all targets."
@@ -17,31 +18,56 @@ then
 fi
 
 for project in ${LIST}; do
-       echo "$0: Pushing '${project}' ..."
-       cd "${JPROJECTS_HOME}/${project}" || exit 255
-
-       SKIP_TEST="${project:0,9}"
-
-       if [ -z "$2" ]
+       if [ ! -d "${JPROJECTS_HOME}/${project}" ]
        then
-               git push --all
+               echo "$0: Project '${project}' does not exist."
+               continue;
        fi
 
-       if [ "${SKIP_TEST}" = "jratecalc" ]
-       then
-               echo "$0: Not continuing for jratecalc project '${project}'."
-               continue
-       fi
+       echo "$0: Processing '${project}',mode='$1' ..."
+       cd "${JPROJECTS_HOME}/${project}" || exit 255
 
        if [ "$1" = "d" ]
        then
-               git push --all daedalus
+               if [ -n "$2" ]
+               then
+                       git push daedalus :"$2"
+               fi
+
+               git push ${FORCE} --all daedalus || exit 255
        elif [ "$1" = "t" ]
        then
-               git push --all transport
+               if [ -n "$2" ]
+               then
+                       git push transport :"$2"
+                       echo "$0: Syncing ..."
+                       sync
+               fi
+
+               git push ${FORCE} --all transport || exit 255
+               echo "$0: Syncing ..."
+               sync
        elif [ "$1" = "u" ]
        then
-               git push --all upstream
+               if [ -n "$2" ]
+               then
+                       git push upstream :"$2"
+               fi
+
+               git push ${FORCE} --all upstream || exit 255
+       else
+               if [ -n "$2" ]
+               then
+                       git push origin :"$2"
+                       echo "$0: Syncing ..."
+                       sync
+               fi
+
+               git push ${FORCE} --all || exit 255
+               echo "$0: Syncing ..."
+               sync
        fi
-       cd "${JPROJECTS_HOME}"
 done
+
+echo "$0: All done."
+exit 0