changeset 1197:e083c616cf04 draft

tweak update-git-remotes script
author cathugger <cathugger@cock.li>
date Fri, 10 Mar 2017 14:28:42 +0000
parents 41dd98da798b
children 93f2650b65c0
files scripts/update-git-remotes
diffstat 1 files changed, 22 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/update-git-remotes	Fri Mar 10 13:19:55 2017 +0000
+++ b/scripts/update-git-remotes	Fri Mar 10 14:28:42 2017 +0000
@@ -12,22 +12,33 @@
 GIT_REPO=./.git
 GIT_REMOTES_DIR=$GIT_REPO/refs/remotes
 
-for u in `ls -1 $USR_DB_DIR`; do
+for u in `ls -1 "$USR_DB_DIR"`; do
   git_url_file="$USR_DB_DIR/$u/git"
 
-  if [ -f $git_url_file ]; then
-    git_url=`cat $git_url_file`
+  if [ -f "$git_url_file" ]; then
+    git_url=`cat "$git_url_file"`
     git_remote_name="anonet_$u"
 
-    if [ -d $GIT_REMOTES_DIR/$git_remote_name ]; then
-      # The remote already exists;
-      # TODO: Update it if it has changed.
-      echo "skipping $u" >&2
-
+    if [ -d "$GIT_REMOTES_DIR/$git_remote_name" ]; then
+      if [ x"$git_url" != x`git remote get-url "$git_remote_name"` ]; then
+        echo "changing $u" >&2
+        git remote set-url "$git_remote_name" "$git_url"
+      else
+        # The remote already exists and is the same
+        echo "skipping $u" >&2
+      fi
     else
-      git remote add -t master -m master $git_remote_name $git_url
-
+      echo "adding $u" >&2
+      git remote add -t master -m master "$git_remote_name" "$git_url"
     fi
-
   fi
 done
+
+for r in `ls -1 "$GIT_REMOTES_DIR" | grep '^anonet_'`; do
+  u=`echo $r | sed 's/^anonet_//'`
+  if [ ! -f "$USR_DB_DIR/$u/git" ]; then
+    echo "deleting $u" >&2
+    git remote rm "$r"
+    rm -rf "$GIT_REMOTES_DIR/$r"
+  fi
+done