diff options
-rwxr-xr-x | share/hydra/init | 18 | ||||
-rwxr-xr-x | share/hydra/sync | 19 |
2 files changed, 27 insertions, 10 deletions
diff --git a/share/hydra/init b/share/hydra/init index 791d4e1..8170603 100755 --- a/share/hydra/init +++ b/share/hydra/init @@ -22,10 +22,11 @@ hydra_config_load # Command line arguments BASEDIR="$1" +REMOTE="$2" # Validation if [ -z "$BASEDIR" ]; then - echo "Usage: hydra [hydra] register <path>" + echo "Usage: hydra [hydra] init <path> [remote]" exit 1 elif grep -q -e "^$HYDRA=" $CONFIG &> /dev/null; then echo "Hydra $HYDRA already defined" @@ -41,14 +42,11 @@ mkdir -p $BASEDIR chmod 700 $BASEDIR echo "$HYDRA=\"$BASEDIR\"" >> $CONFIG -# Puppet configuration -echo "Searching for a puppet repository at $BASEDIR..." -PUPPET="$(dirname `find $BASEDIR -name puppet.conf | tail -n 1` 2> /dev/null)" - -# TODO: setup or clone initial repositories - -if [ ! -z "$PUPPET" ]; then - echo "Found puppet repository at $PUPPET." - echo "PUPPET=$PUPPET" >> $PREFERENCES +# Optional remote configuration +if [ ! -z "$REMOTE" ]; then + echo "Using $REMOTE as private gitolite address." + echo "PRIVATE_REPOS=$REMOTE" >> $PREFERENCES fi +# Setup or clone initial repositories +hydra $HYDRA sync diff --git a/share/hydra/sync b/share/hydra/sync index e3fb571..1c3724d 100755 --- a/share/hydra/sync +++ b/share/hydra/sync @@ -27,15 +27,21 @@ else fi # Sync each repository. +# TODO: split between public and private repositories for repository in $REPOSITORIES; do if [ "$repository" == "keyringer" ]; then UPDATE_KEYRINGER="yes" continue fi + if [ ! -d "$HYDRA_FOLDER/$repository/.git" ]; then + git clone $PRIVATE_REPOS/$repository $HYDRA_FOLDER/$repository + fi + if [ -d "$HYDRA_FOLDER/$repository/.git" ]; then echo "Syncing $repository..." + # TODO: check if git-annex is installed if [ "$repository" == "bootless" ]; then ( cd $HYDRA_FOLDER/$repository && git annex sync ) else @@ -49,3 +55,16 @@ if [ "$UPDATE_KEYRINGER" != "no" ]; then echo "Syncing keyringer..." keyringer $HYDRA git pull fi + +# Update puppet configuration. +if [ -z "$PUPPET" ]; then + echo "Searching for a puppet repository at $BASEDIR..." + PUPPET="$(dirname `find $BASEDIR -name puppet.conf | tail -n 1` 2> /dev/null)" + + if [ ! -z "$PUPPET" ]; then + if ! grep -q -e "^PUPPET=" $PREFERENCES; then + echo "Found puppet repository at $PUPPET." + echo "PUPPET=$PUPPET" >> $PREFERENCES + fi + fi +fi |