]> gitweb.fluxo.info Git - hydra.git/commitdiff
Sync-media: handle git-only repositories
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 23 Oct 2016 16:27:22 +0000 (14:27 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 23 Oct 2016 16:27:22 +0000 (14:27 -0200)
share/hydractl/sync-media

index 39b1ab3c319708f72d74e03cd7cedfa36dbb1aad..c486ff74e2007880ede2f9d253543db470a0297b 100755 (executable)
@@ -191,15 +191,21 @@ for folder in `ls $CACHE`; do
   if [ ! -z "$DRIVE" ]; then
     mkdir -p $VOLUME/$MEDIA
 
-    if [ -d "$CACHE/$folder/.git/annex" ]; then
+    if [ -d "$CACHE/$folder/.git" ]; then
       if [ ! -d "$VOLUME/$MEDIA/$folder" ]; then
         (
         cd $VOLUME/$MEDIA
         echo "Initializing $VOLUME/$MEDIA/$folder..."
-        git clone $CACHE/$folder && cd $folder && sync_media_identity && git annex init $DRIVE && \
-          git remote rename origin $HOST && git config sync-media.getall true && \
-          cd $CACHE/$folder && git remote add $DRIVE $VOLUME/$MEDIA/$folder
+        git clone $CACHE/$folder && cd $folder && sync_media_identity && git remote rename origin $HOST
+        cd $CACHE/$folder && git remote add $DRIVE $VOLUME/$MEDIA/$folder
         )
+
+        if [ -d "$CACHE/$folder/.git/annex" ]; then
+          (
+          cd $VOLUME/$MEDIA
+          git annex init $DRIVE && git config sync-media.getall true
+          )
+        fi
       fi
     elif [ ! -d "$VOLUME/$MEDIA/$folder" ]; then
       mkdir -p $VOLUME/$MEDIA/$folder
@@ -233,7 +239,7 @@ if [ ! -z "$DRIVE" ] && [ -d "$VOLUME/$MEDIA" ]; then
       sync_media_dropunused
       #git annex drop --auto --numcopies=2
       )
-    elif [ -d "$CACHE/$folder" ]; then
+    elif [ -d "$CACHE/$folder" ] && [ ! -d "$CACHE/$folder/.git" ]; then
       # Avoid those configured to be skipped
       if [ ! -e "$CACHE/$folder/.sync-media/skip" ]; then
         echo "Syncing $CACHE/$folder with $VOLUME/$MEDIA/$folder..."
@@ -252,13 +258,20 @@ if [ ! -z "$DRIVE" ] && [ -d "$VOLUME/$MEDIA" ]; then
 
     # Ensure the local cache has each repository listed in the removable media
     if [ ! -d "$CACHE/$folder" ]; then
-      if [ -d "$VOLUME/$MEDIA/$folder/.git/annex" ]; then
+      if [ -d "$VOLUME/$MEDIA/$folder/.git" ]; then
         (
         cd $CACHE
         echo "Initializing $CACHE/$folder..."
-        git clone $VOLUME/$MEDIA/$folder && cd $folder && sync_media_identity && git annex init $HOST && \
-          git remote rename origin $REMOTE && cd $VOLUME/$MEDIA/$folder && git remote add $HOST $CACHE/$folder 
+        git clone $VOLUME/$MEDIA/$folder && cd $folder && sync_media_identity && git remote rename origin $REMOTE
+        cd $VOLUME/$MEDIA/$folder && git remote add $HOST $CACHE/$folder
         )
+
+        if [ -d "$VOLUME/$MEDIA/$folder/.git/annex" ]; then
+          (
+          cd $CACHE
+          git annex init $HOST
+          )
+        fi
       else
         echo "Syncing $VOLUME/$MEDIA/$folder into $CACHE/$folder..."
         rsync -av --delete --exclude=.sync-media $VOLUME/$MEDIA/$folder/ $CACHE/$folder/