]> gitweb.fluxo.info Git - hydra.git/commitdiff
Initial logic for a sync-media-remotes
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 8 Nov 2016 17:06:43 +0000 (15:06 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 8 Nov 2016 17:06:43 +0000 (15:06 -0200)
share/hydractl/sync-media-remotes [new file with mode: 0755]
share/hydractl/sync-tpc

diff --git a/share/hydractl/sync-media-remotes b/share/hydractl/sync-media-remotes
new file mode 100755 (executable)
index 0000000..fd69708
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/bash
+#
+# Keep git remotes in sync among media archives.
+#
+
+# Parameters
+BASENAME="$0"
+DEST="$1"
+MEDIA="/var/cache/media"
+
+# Syntax
+if [ -z "$DEST" ]; then
+  echo "usage: $BASENAME <dest>"
+  exit 1
+elif [ ! -d "$DEST/$MEDIA" ]; then
+  echo "folder $DEST/$MEDIA does not exist."
+  exit 1
+fi
+
+# TODO
+echo "Needs work!"
+exit
+
+# Run
+for folder in `ls $MEDIA`; do
+  if [ -d "$DEST/$MEDIA/$folder/.git" ]; then
+    git -C $MEDIA/$folder remote -v | grep "(fetch)" | sed -e 's/(fetch)//' | while read remote; do
+    (
+      cd $DEST/$MEDIA/$folder
+      name="`echo $remote | cut -d ' ' -f 1`"
+      url="`echo $remote | cut -d ' ' -f 2`"
+
+      # Add and update
+      if [ "$name" != "all" ]; then
+        if ! git remote | grep -q "^$name$" ]; then
+          git remote add $remote
+        else
+          oldurl="`git remote -v | grep "^$name$" | grep "(fetch)" | cut -d ' ' -f 2`"
+
+          if [ "$url" != "$oldurl" ]; then
+            git remote set-url $name --delete $oldurl
+            git remote set-url $name --add    $url
+          fi
+        fi
+      fi
+
+      # Remove dangling remotes
+    )
+    done
+  fi
+done
index ae1cd0bd2be7d7a51be638d1f84ba4caacadb9d4..bdedf35f4c835c1adaa69bd8e72cda872a7e4237 100755 (executable)
@@ -6,6 +6,7 @@
 # Parameters
 BASENAME="$0"
 DEST="$1"
+MEDIA="/var/cache/media"
 
 # Syntax
 if [ -z "$DEST" ]; then
@@ -40,3 +41,6 @@ $SUDO rsync -av --delete /var/lib/wicd/         $DEST/var/lib/wicd/
 $SUDO cp -a /etc/network/interfaces                   $DEST/etc/network/interfaces
 $SUDO cp -a /etc/wicd/manager-settings.conf           $DEST/etc/wicd/manager-settings.conf
 $SUDO cp -a /etc/udev/rules.d/70-persistent-net.rules $DEST/etc/udev/rules.d/70-persistent-net.rules
+
+# Sync media remotes
+hydractl sync-media-remotes $DEST