From f48ac6329f1ffada4088184ff646136a5adfc865 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 20 Feb 2017 16:40:54 -0300 Subject: Simplify sync process --- share/hydra/init | 4 +++- share/hydra/sync | 63 ++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/share/hydra/init b/share/hydra/init index 0821d45..d3ec70f 100755 --- a/share/hydra/init +++ b/share/hydra/init @@ -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 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 -- cgit v1.2.3