summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xshare/hydra/init18
-rwxr-xr-xshare/hydra/sync19
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