summaryrefslogtreecommitdiff
path: root/share/hydra/sync
diff options
context:
space:
mode:
Diffstat (limited to 'share/hydra/sync')
-rwxr-xr-xshare/hydra/sync63
1 files changed, 38 insertions, 25 deletions
diff --git a/share/hydra/sync b/share/hydra/sync
index bed3e4f..cd1329f 100755
--- a/share/hydra/sync
+++ b/share/hydra/sync
@@ -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