Continued:
[jprojects-scripts.git] / push-stick.sh
index 2c6f5209b4f4e448f26c69c442febd15ec77d4ef..3c02302d81210e9e45b47985dbb25872b3a2ac43 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."
@@ -26,28 +27,55 @@ for project in ${LIST}; do
        echo "$0: Processing '${project}',mode='$1' ..."
        cd "${JPROJECTS_HOME}/${project}" || exit 255
 
-       SKIP_TEST="${project:0:9}"
-
-       if [ -z "$2" -o "${SKIP_TEST}" = "jratecalc" ]
+       if [ "$1" = "d" ]
        then
-               echo "$0: Pushing '${project}',mode='$1' ..."
-               git push --all || exit 255
-       fi
+               if [ -n "$2" ]
+               then
+                       git push daedalus :"$2"
+               fi
 
-       if [ "${SKIP_TEST}" = "jratecalc" ]
-       then
-               echo "$0: Not continuing for jratecalc project '${project}'."
-               continue
-       elif [ "$1" = "d" ]
-       then
-               git push --all daedalus || exit 255
+               git push ${FORCE} --all daedalus || exit 255
        elif [ "$1" = "t" ]
        then
-               git push --all transport || exit 255
+               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 || exit 255
-       fi
+               if [ -n "$2" ]
+               then
+                       git push upstream :"$2"
+               fi
 
-       cd "${JPROJECTS_HOME}"
+               git push ${FORCE} --all upstream || exit 255
+       elif [ "$1" = "o" ]
+       then
+               if [ -n "$2" ]
+               then
+                       git push origin :"$2"
+               fi
+
+               git push ${FORCE} --all origin || exit 255
+       else
+               if [ -n "$2" ]
+               then
+                       git push origin :"$2"
+                       echo "$0: Syncing ..."
+                       sync
+               fi
+
+               git push ${FORCE} --all
+               echo "$0: Syncing ..."
+               sync
+       fi
 done
+
+echo "$0: All done."
+exit 0