]> gitweb.fluxo.info Git - puppet-backup.git/commitdiff
Command line support for adding remotes on sync-media-init
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 31 May 2013 20:57:46 +0000 (17:57 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 31 May 2013 20:57:46 +0000 (17:57 -0300)
files/sync-media-init

index 72ed9e15adcef5012a35c6e467101d42c9bf8c6f..aee3541e0a9b434a0a80ce28a2f0751544dba18b 100644 (file)
@@ -6,15 +6,16 @@
 # Parameters
 BASENAME="`basename $0`"
 VOLUME="$1"
+TYPES="$2"
 DOMAIN="`facter DOMAIN`"
 HOST="`facter hostname`"
-#LOCAL_BOXES=""
-#LOCAL_VOLUMES=""
-#REMOTE_BOXES=""
+CACHES=""
+VOLUMES=""
+BOXES=""
 
 # Syntax check
 if [ -z "$VOLUME" ]; then
-  echo "usage: $BASENAME <VOLUME>"
+  echo "usage: $BASENAME <volume> [<caches|volumes|boxes> [remotes]]"
   exit 1
 fi
 
@@ -25,6 +26,19 @@ else
   MEDIA="/media/$VOLUME/media.$DOMAIN"
 fi
 
+# Determine remote type
+shift 2
+if [ "$TYPES" == 'caches' ]; then
+  # Remotes are caches of local boxes
+  CACHES="$*"
+elif [ "$TYPES" == 'volumes' ]; then
+  # Remotes are removable media
+  VOLUMES="$*"
+elif [ "$TYPES" == 'boxes' ]; then
+  # Remotes are remote boxes
+  BOXES="$*"
+fi
+
 # Process each repository
 for file in `ls $MEDIA`; do
   if [ -d "$MEDIA/$file/.git" ]; then
@@ -41,18 +55,22 @@ for file in `ls $MEDIA`; do
       git annex init $VOLUME
     fi
 
-    for remote in $LOCAL_BOXES; do
+    for remote in $CACHES; do
       echo "Adding /var/cache/$remote/media/$file remote..."
       git remote add $remote /var/cache/$remote/media/$file
     done
 
-    for remote in $LOCAL_VOLUMES; do
+    for remote in $VOLUMES; do
       echo "Adding /media/$remote/media.$DOMAIN/$file..."
       git remote add $remote /media/$remote/media.$DOMAIN/$file
     done
 
-    for remote in $REMOTE_BOXES; do
-      echo "Adding /var/cache/$remote/media/$file remote..."
+    for remote in $BOXES; do
+      if ! echo $remote | grep -q '\.'; then
+        remote="$remote.$DOMAIN"
+      fi
+
+      echo "Adding ssh://$remote/var/cache/media/$file..."
       git remote add $remote ssh://$remote/var/cache/media/$file
     done