git daemon init script and config
[infrastructure.git] / scripts / git-check.sh
1 #!/bin/sh
2
3 cd /git
4
5 gitwebfiles="git-favicon.png git-logo.png gitweb.cgi gitweb.css"
6
7 ########
8 gitwebpattern=""
9 for file in $gitwebfiles; do gitwebpattern="${gitwebpattern}|$file" ; done
10 gitwebpattern=$(echo "$gitwebpattern" | sed -e 's,|,,')
11
12 ### function count () {
13 ### 
14 ###     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx counting"
15 ### 
16 ###     echo git
17 ###     ls git | wc -l 
18 ### 
19 ###     echo gitweb
20 ###     ls gitweb | egrep -v "$gitwebpattern" | wc -l 
21 ### 
22 ### }
23 ### 
24 ### function missing_in_git () {
25 ### 
26 ###     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in git"
27 ### 
28 ###     for i in $(ls gitweb | egrep -v $gitwebpattern); do 
29 ###     b=$(basename $i .git)
30 ###     [ -d git/$b ] || echo $b missing in git
31 ###     done
32 ### 
33 ### }
34
35 function missing_in_gitweb () {
36
37 ###     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in gitweb (from git)"
38 ### 
39 ###     for i in $(ls git); do 
40 ###     echo -n "$i " 
41 ###     if [ ! -h gitweb/${i}.git ] ; then
42 ###         echo -n "ADDING $i.git "
43 ###         (cd git; ln -s ../$i/.git ${i}.git)
44 ###     fi
45 ###     done
46     
47     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in gitweb (for web)"
48     for i in $gitwebfiles; do
49         echo -n "$i "
50         if [ ! -h git/${i} ] ; then
51             echo "LINKING.. " ; (cd git; ln -s ../${i} .)
52         fi
53     done
54     echo ""
55
56 }
57
58 function fill_descriptions () {
59     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking descriptions "
60     for arg in "$@" ; do
61         # accept args like git/plcapi
62         i=$(basename $arg)
63         echo -n "$i "
64         grep Unnamed git/$i/.git/description && { echo -n $i "Setting.. "; echo $i > git/$i/.git/description ; }
65     done
66     echo ""
67 }
68
69 function upload_archives () {
70     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking configs for uploadarch "
71     for arg in "$@" ; do
72         # accept args like git/plcapi
73         i=$(basename $arg)
74         echo -n "$i "
75         if ! grep uploadarch git/$i/.git/config ; then
76             echo -n $i "Setting.. "; 
77             cat >> git/$i/.git/config <<EOF
78 [daemon]
79         uploadpack = false
80         uploadarch = true
81 EOF
82         fi
83     done
84     echo ""
85 }
86
87 #count
88 #missing_in_git
89 missing_in_gitweb
90 fill_descriptions $(ls git | egrep -v "${gitwebpattern}")
91 upload_archives $(ls git | egrep -v "${gitwebpattern}")