install.sh: Actually check if $cfg_git_bin provides git-mirror
[girocco/mytab.git] / jobs / updatecheck.sh
blob982707ad52d91116fbc9863c3436349f9a7a2589
1 #!/bin/bash
3 . shlib.sh
5 if [ -e /tmp/gitupdatelock ]; then
6 echo "Locked!" >&2
7 exit 1
8 fi
9 touch /tmp/gitupdatelock
11 # Repack in reverse order, so that forked repositories get repacked first.
12 # That prevents objects from missing, since repack -l will automagically
13 # put the now-going-away objects into the forked repository's object store.
15 cd "$cfg_reporoot"
16 get_repo_list_here | tac |
17 while read dir; do
18 # echo "+ `date` $dir"
19 if [ -e "$dir"/.nofetch ]; then
20 (cd "$dir/objects" && [ "$(ls ?? 2>/dev/null)" ] && git --git-dir=.. repack -a -l -d -q)
21 git --git-dir="$dir" update-server-info
22 else
23 "$cfg_basedir"/jobs/update.sh "${dir%.git}"
25 # echo "- `date` $dir"
26 done 2>&1 | grep -v '^Pack.*created\.$'
28 rm /tmp/gitupdatelock