]> gitweb.fluxo.info Git - hydra.git/commitdiff
Simplify sync process
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 20 Feb 2017 19:40:54 +0000 (16:40 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 20 Feb 2017 19:40:54 +0000 (16:40 -0300)
share/hydra/init
share/hydra/sync

index 0821d45263e3f94362df4db0e7e3b3441f36027e..d3ec70f0e054b9a5c5d51ffae714e71084bedc64 100755 (executable)
@@ -49,9 +49,11 @@ if [ ! -z "$REMOTE" ]; then
 
     # Initialize only the required repositories
     for repo in $BASEREPOS; do
+      # There is a superproject, so we try to initialize submodules
       if [ -e '.gitmodules' ] && git submodule | grep -q " $repo$"; then
         git submodule update --init --recursive $repo
       else
+        # No superproject, so we clone each repository
         REMOTE="`echo $REMOTE | sed -e 's|/$||'`"
 
         if git ls-remote ${REMOTE}/$repo &> /dev/null; then
@@ -131,4 +133,4 @@ echo "$HYDRA=\"$BASEDIR\"" >> $CONFIG
 #read response
 
 # Sync repositories
-hydra $HYDRA sync
+#hydra $HYDRA sync
index bed3e4f0dd15e1398f603810b4f59236799ff07a..cd1329f64c6ecfb82d2e4158a7768b42e1f3f761 100755 (executable)
@@ -45,10 +45,15 @@ function hydra_sync {
       git clone ${url}${repository} $HYDRA_FOLDER/$repository
     fi
   
-    if [ -d "$HYDRA_FOLDER/$repository/.git" ]; then
+    if [ -e "$HYDRA_FOLDER/$repository/.git" ]; then
       echo "Syncing $repository..."
   
-      if [ "$repository" == "bootless" ]; then
+      if [ -d "$HYDRA_FOLDER/$repository/.git/annex" ]; then
+        # Check for requirements.
+        for req in git-annex; do
+          hydra_install_package $req
+        done
+
         ( cd $HYDRA_FOLDER/$repository && git annex sync )
       else
         (
@@ -63,6 +68,30 @@ function hydra_sync {
       fi
     fi
   done
+
+  # Sync keyringer at last
+  if [ "$UPDATE_KEYRINGER" == "yes" ]; then
+    hydra_sync_keyringer
+  fi
+}
+
+# Update keyring.
+function hydra_sync_keyringer {
+  if [ "$UPDATE_KEYRINGER" != "no" ]; then
+    if [ ! -e "$HOME/.keyringer/$HYDRA" ]; then
+      if [ -e "$HYDRA_FOLDER/keyring" ]; then
+        if ! which keyringer &> /dev/null; then
+          hydra_install_package keyringer
+        fi
+
+        echo "Initializing keyring for $HYDRA..."
+        keyringer $HYDRA init $HYDRA_FOLDER/keyring
+
+        echo "Syncing keyringer..."
+        keyringer $HYDRA git pull
+      fi
+    fi
+  fi
 }
 
 # Basic parameters.
@@ -70,29 +99,13 @@ if [ -z "$1" ]; then
   REPOSITORIES="$BASEREPOS"
 else
   REPOSITORIES="$*"
-  UPDATE_KEYRINGER="no"
 fi
 
-# Check for requirements.
-for req in git-annex; do
-  hydra_install_package $req
-done
-
-hydra_sync $REPOSITORIES
-
-# Update keyring.
-if [ "$UPDATE_KEYRINGER" != "no" ]; then
-  if [ ! -e "$HOME/.keyringer/$HYDRA" ]; then
-    if [ -e "$HYDRA_FOLDER/keyring" ]; then
-      if ! which keyringer &> /dev/null; then
-        hydra_install_package keyringer
-      fi
-
-      echo "Initializing keyring for $HYDRA..."
-      keyringer $HYDRA init $HYDRA_FOLDER/keyring
-
-      echo "Syncing keyringer..."
-      keyringer $HYDRA git pull
-    fi
-  fi
+# Check if this hydra uses a superproject
+if [ -d "$HYDRA_FOLDER/.git" ]; then
+  # Update submodules
+  ( cd $HYDRA_FOLDER && git submodule update --recursive )
+else
+  # Sync each repository
+  hydra_sync $REPOSITORIES
 fi