Group common git-project functions in script
[hvutilities.git] / scripts / git-project-update.sh
index b47dcbc..6b6895f 100755 (executable)
@@ -2,11 +2,7 @@
 
 SCRIPT="`readlink -e $0`"
 SCRIPTPATH=$(dirname ${SCRIPT})
-
-SUBREPOS_LIST=.gitsubrepos
-
-# Uncomment to have verbose debug output
-##debug=1
+source ${SCRIPTPATH}/hv-git-functions.sh
 
 print_usage()
 {
@@ -25,72 +21,20 @@ if [ ${#} -ne 1 ]; then
     exit 1
 fi
 
-if [ ! -f ${SUBREPOS_LIST} ]; then
-    echo "Missing file for list of subrepos: ${SUBREPOS_LIST}"
-    print_usage
-    exit 1
-fi
+hv_git_validate_subrepos_list
 
 branch=${1}
 rc=0
 
-update_repo()
-{
-    local valid="0"
-
-    if [ ${#} -ne 1 ]; then
-        echo "Missing repository name"
-        exit 1
-    fi
-
-    local r=${1}
-
-    echo -n "Repo ${r}: "
-
-    pushd "${r}" 1> /dev/null
-
-    for b in ${branch} latest master; do
-        exists=$(git show-ref refs/heads/${b})
-        if [ -n "$exists" ]; then
-            vco -q ${b} 1> /dev/null
-
-            if [ ${?} -ne 0 ]; then
-                rc=1
-            fi
-            echo "${b}"
-            valid="1"
-            break
-        fi
-    done
-
-    if [ x"${valid}" = x"0" ]; then
-        echo "No valid branch found"
-        rc=1
-    fi
-
-    popd 1> /dev/null
-}
-
-update_repo ./
-
-# Read list of repositories from file named .gitsubrepos
-while IFS=$'\n' read r ; do
-    [[ "${r}" =~ \#.* ]] && continue # Skip comment lines
-    [ -z ${r} ] && continue # Skip enmpty lines
-
+for r in ./ $(hv_git_get_subrepos_list); do
     # Make sure directory exists
     if [ ! -d "${r}" ]; then
         echo "Skipping missing repos ${r}"
         continue
     fi
 
-    # Update only git repos
-    if [ ! -d "${r}/.git" ]; then
-        echo "Not a GIT repository"
-        exit 1
-    fi
-
-    update_repo ${r}
-done < ${SUBREPOS_LIST}
+    hv_git_checkout ${r} ${branch}
+    rc=${?}
+done
 
 exit ${rc}