blob: cf4782c08aa813b642302b5fb0494d0eef7a1006 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/bin/sh
#
# Creates git remotes from the user db
# TODO: detect users' git address changes
#
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
|