diff options
Diffstat (limited to 'share/hydra/sync')
-rwxr-xr-x | share/hydra/sync | 63 |
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 |