warbo-utilities: 55cbd40bae38f5ef7b92fb43ecef0761348a1db6
1: #!/usr/bin/env bash
2:
3: (cd /opt/repos || exit 1
4: echo "Make sure each repo in /opt/repos is linked in /opt/git/" 1>&2
5: for repo in *.git
6: do
7: name=$(basename "$repo")
8: if [ ! -h "/opt/git/$name" ]
9: then
10: (cd /opt/git &&
11: ln -s "/opt/repos/$name" "$name")
12: fi
13: done
14:
15: echo "Make sure each repo has been initialised" 1>&2
16: for repo in *.git
17: do
18: (cd "$repo" &&
19: git init --bare)
20: done
21:
22: echo "Make sure our repos are not mirrors"
23: for repo in *.git
24: do
25: pushd "$repo" > /dev/null || exit 1
26: git remote | while read -r REMOTE
27: do
28: echo "Removing '$repo' remote '$REMOTE'" 1>&2
29: git remote rm "$REMOTE"
30: done
31: popd > /dev/null || exit 1
32: done
33:
34: echo "Make sure each repo has its hooks in place" 1>&2
35: for repo in *.git
36: do
37: name=$(basename "$repo")
38: (cd "$repo/hooks" || exit 1
39: DEST="../../post-receive.hook"
40: for hook in post-receive post-update
41: do
42: if [ -e "$hook" ]
43: then
44: if [ -h "$hook" ]
45: then
46: H=$(readlink -f "$hook")
47: F=$(readlink -f "$DEST")
48: [[ "$H" = "$F" ]] || {
49: echo "File '$H' should be symlink to '$DEST'" 1>&2
50: }
51: else
52: echo "File '$PWD/$hook' should be symlink but isn't" 1>&2
53: fi
54: else
55: # Use post-receive.hook for both
56: ln -s "$DEST" "$hook"
57: fi
58: done)
59: done
60:
61: echo "Run the post-receive hook to ensure changes are served" 1>&2
62: for repo in *.git
63: do
64: (cd "$repo" || exit 1
65: echo "$PWD"
66: sh hooks/post-receive)
67: done
68:
69: echo "Make sure HTML pages exist" 1>&2
70: for repo in *.git
71: do
72: NAME=$(basename "$repo" .git)
73: HTML="/opt/html/$NAME"
74: [[ -e "$HTML/index.html" ]] || echo "No HTML pages '$HTML'" 1>&2
75: done
76:
77: for html in /opt/html/*
78: do
79: NAME=$(basename "$html")
80: REPO="/opt/repos/$NAME.git"
81: [[ -e "$REPO" ]] || echo "Found '$html' but not '$REPO'" 1>&2
82: done)
Generated by git2html.