Improvements
[jprojects-scripts.git] / push-stick.sh
index a797e34da6cb3419a46b3a68e49bdf63997f7c63..2c6f5209b4f4e448f26c69c442febd15ec77d4ef 100755 (executable)
@@ -2,16 +2,52 @@
 
 . ./.jprojects.sh || exit 255
 
-for ENTRY in ${LIST}; do
-       echo "$0: Pushing '${ENTRY}' ..."
-       cd "${ENTRY}" || exit 255
-       git push --all
-       if [ "$1" = "u" ]
+TARGETS="d t u"
+
+if [ "$1" = "a" ]
+then
+       cd "${JPROJECTS_HOME}"
+       for TARGET in ${TARGETS}; do
+               echo "$0: Pushing for target '${TARGET}' ..."
+               $0 "${TARGET}" "1"
+       done
+
+       echo "$0: Pushed to all targets."
+       exit 0
+fi
+
+for project in ${LIST}; do
+       if [ ! -d "${JPROJECTS_HOME}/${project}" ]
+       then
+               echo "$0: Project '${project}' does not exist."
+               continue;
+       fi
+
+       echo "$0: Processing '${project}',mode='$1' ..."
+       cd "${JPROJECTS_HOME}/${project}" || exit 255
+
+       SKIP_TEST="${project:0:9}"
+
+       if [ -z "$2" -o "${SKIP_TEST}" = "jratecalc" ]
+       then
+               echo "$0: Pushing '${project}',mode='$1' ..."
+               git push --all || exit 255
+       fi
+
+       if [ "${SKIP_TEST}" = "jratecalc" ]
        then
-               git push --all upstream
+               echo "$0: Not continuing for jratecalc project '${project}'."
+               continue
        elif [ "$1" = "d" ]
        then
-               git push --all daedalus
+               git push --all daedalus || exit 255
+       elif [ "$1" = "t" ]
+       then
+               git push --all transport || exit 255
+       elif [ "$1" = "u" ]
+       then
+               git push --all upstream || exit 255
        fi
-       cd -
+
+       cd "${JPROJECTS_HOME}"
 done