Continued:
[jprojects-scripts.git] / cherry-jprojects.sh
index ef82bae60f5649a7906d298fbd3a1632edfa2401..1ecb7945ed71f8769a80eb73076579ea5b5a3cff 100755 (executable)
@@ -11,20 +11,34 @@ for project in ${LIST}; do
        then
                echo "$0: Project '${project}' does not exist."
                continue
-       elif [ ! -f "${JPROJECTS_HOME}/${project}/.gitcommits" ]
+       fi
+
+       COMMITS_FILE="${JPROJECTS_HOME}/${project}/.gitcommits"
+
+       if [ ! -f "${COMMITS_FILE}" ]
        then
                # No .gitcommits file, skip this silently
                continue
        fi
 
-       COMMIT_IDS=`cat "${JPROJECTS_HOME}/${project}/.gitcommits"`
-       COMMITS_FILE="${JPROJECTS_HOME}/${project}/.gitcommits"
+       COMMIT_IDS=$(cat "${COMMITS_FILE}")
+
+       if [ -n "${COMMIT_IDS}" ]
+       then
+               cd "${JPROJECTS_HOME}/${project}"
+               echo "$0: Fetching all for project '${project}' ..."
+               git prune
+               git fetch --all
+       else
+               echo "$0: Nothing to cherry-pick for '${project}'."
+               rm "${COMMITS_FILE}"
+               continue
+       fi
 
        echo "$0: Cherry-picking on project '${project}' ..."
        for commit in ${COMMIT_IDS}; do
-               cd "${JPROJECTS_HOME}/${project}"
                echo "$0: Working on commit '${commit}' ..."
-               FOUND_ID=`git rev-list "${commit}" --max-count=1 2>&1`
+               FOUND_ID=$(git rev-list "${commit}" --max-count=1 2>&1)
                STATUS="$?"
 
                if [ "${STATUS}" != "0" ]
@@ -37,7 +51,7 @@ for project in ${LIST}; do
                git cherry-pick -S "${commit}" || exit 255
 
                echo "$0: Removing commit from list ..."
-               REMAINING_IDS=`cat ${COMMITS_FILE} | grep -v "${commit}"`
+               REMAINING_IDS=$(cat ${COMMITS_FILE} | grep -v "${commit}")
                echo "${REMAINING_IDS}" > ${COMMITS_FILE}
        done