set uploadpack to true as well
[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 missing_gitweb () {
13
14     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in gitweb (for web)"
15     for i in $gitwebfiles; do
16         echo -n "$i "
17         if [ -f ${i} ] ; then
18             echo -n "OK "
19         else
20             echo -n "MISSING.. " ; 
21         fi
22     done
23     echo ""
24
25 }
26
27 function fill_descriptions () {
28     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking descriptions "
29     for arg in "$@" ; do
30         # accept args like plcapi or plcapi.git
31         b=$(basename $arg .git)
32         git=${b}.git
33         echo -n "$git "
34         grep -q Unnamed $git/description && { echo -n $i "Setting.. "; echo $b > $git/description ; }
35     done
36     echo ""
37 }
38
39 function upload_archives () {
40     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking configs for uploadarch "
41     for arg in "$@" ; do
42         # accept args like plcapi or plcapi.git
43         b=$(basename $arg .git)
44         git=${b}.git
45         echo -n "$git "
46         if ! grep -q uploadarch $git/config ; then
47             echo -n $i "Setting.. "; 
48             cat >> $git/config <<EOF
49 [daemon]
50         uploadpack = true
51         uploadarch = true
52 EOF
53         fi
54     done
55     echo ""
56 }
57
58 function check_permissions () {
59     echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking descriptions "
60     for arg in "$@" ; do
61         # accept args like plcapi or plcapi.git
62         b=$(basename $arg .git)
63         git=${b}.git
64         echo -n "$git "
65         chown -R root:onelab $git
66         chmod -R g+w,o-w $git
67     done
68     echo ""
69 }
70
71 # missing_gitweb
72 args="$@"
73 [[ -z "$args" ]] && args=$(ls -d *.git)
74 fill_descriptions $args
75 upload_archives $args
76 check_permissions $args