diff options
Diffstat (limited to 'scripts/update-git-remotes')
-rwxr-xr-x | scripts/update-git-remotes | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/scripts/update-git-remotes b/scripts/update-git-remotes index 04300cc..cf4782c 100755 --- a/scripts/update-git-remotes +++ b/scripts/update-git-remotes @@ -12,22 +12,33 @@ USR_DB_DIR=./db/usr 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 |