view scripts/update-git-remotes @ 1233:1b7ce27f434c draft

added as 1234 and cidr 21.44.44.0/24 Committer: ano <ano@x>
author ano <root@x>
date Sun, 02 Dec 2018 23:01:26 +0000
parents 2dcb03d77b03
children
line wrap: on
line source

#!/bin/sh
#
# Synchronizes git remotes with the user db
#

echo "checking database safety" >&2
if ! `dirname "$0"`/check_db_safety; then
 exit 1
fi

USR_DB_DIR=./db/usr
GIT_REPO=./.git
GIT_REMOTES_DIR=$GIT_REPO/refs/remotes

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"`
    git_remote_name="anonet_$u"

    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
      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