X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fgit-check.sh;h=91fd7d98a6d71bc45fb5e9267e92a076a8afe4b1;hb=e53fbfa162e39a8a68455cd95adca139ac6e46eb;hp=b87b3ea599192c01e335a755a64af2a95c69d3c8;hpb=8ad691c6cee242e05b260aee506e11f38dbce9dd;p=infrastructure.git diff --git a/scripts/git-check.sh b/scripts/git-check.sh index b87b3ea..91fd7d9 100755 --- a/scripts/git-check.sh +++ b/scripts/git-check.sh @@ -9,83 +9,84 @@ gitwebpattern="" for file in $gitwebfiles; do gitwebpattern="${gitwebpattern}|$file" ; done gitwebpattern=$(echo "$gitwebpattern" | sed -e 's,|,,') -### function count () { -### -### echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx counting" -### -### echo git -### ls git | wc -l -### -### echo gitweb -### ls gitweb | egrep -v "$gitwebpattern" | wc -l -### -### } -### -### function missing_in_git () { -### -### echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in git" -### -### for i in $(ls gitweb | egrep -v $gitwebpattern); do -### b=$(basename $i .git) -### [ -d git/$b ] || echo $b missing in git -### done -### -### } +function missing_gitweb () { -function missing_in_gitweb () { - -### echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in gitweb (from git)" -### -### for i in $(ls git); do -### echo -n "$i " -### if [ ! -h gitweb/${i}.git ] ; then -### echo -n "ADDING $i.git " -### (cd git; ln -s ../$i/.git ${i}.git) -### fi -### done - echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in gitweb (for web)" for i in $gitwebfiles; do echo -n "$i " - if [ ! -h git/${i} ] ; then - echo "LINKING.. " ; (cd git; ln -s ../${i} .) + if [ -f ${i} ] ; then + echo -n "OK " + else + echo -n "MISSING.. " ; fi done echo "" } + function fill_descriptions () { echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking descriptions " for arg in "$@" ; do - # accept args like git/plcapi - i=$(basename $arg) - echo -n "$i " - grep Unnamed git/$i/.git/description && { echo -n $i "Setting.. "; echo $i > git/$i/.git/description ; } + # accept args like plcapi or plcapi.git + b=$(basename $arg .git) + git=${b}.git + echo -n "$git " + grep -q Unnamed $git/description && { echo -n $i "Setting.. "; echo $b > $git/description ; } done echo "" } -function upload_archives () { - echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking configs for uploadarch " +function check_permissions () { + echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking permissions " for arg in "$@" ; do - # accept args like git/plcapi - i=$(basename $arg) - echo -n "$i " - if ! grep uploadarch git/$i/.git/config ; then - echo -n $i "Setting.. "; - cat >> git/$i/.git/config <& /dev/null || { git config core.sharedrepository true; echo -n "sharedrepository "; } + git config daemon.uploadpack >& /dev/null || { git config daemon.uploadpack true; echo -n "uploadpack "; } + git config daemon.uploadarch >& /dev/null || { git config daemon.uploadarch true; echo -n "uploadarch "; } + git config hooks.mailinglist >& /dev/null || { git config hooks.mailinglist git@onelab.eu; echo -n "mailinglist "; } + git config hooks.announcelist >& /dev/null || { git config hooks.announcelist git@onelab.eu; echo -n "announcelist "; } + git config hooks.envelopesender >& /dev/null || { git config hooks.envelopesender git@onelab.eu; echo -n "envelopesender "; } + git config hooks.emailprefix >& /dev/null|| { git config hooks.emailprefix '[GIT] '; echo -n "emailprefix "; } + cd - >& /dev/null + done + echo "" +} + +function check_hooks () { + echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking hooks " + for arg in "$@" ; do + # accept args like plcapi or plcapi.git + b=$(basename $arg .git) + git=${b}.git + echo -n "$git " + # standard version is in /usr/share/doc/git-1.5.5.6/hooks/post-receive-email + (cd $git/hooks; cp -f /root/bin/post-receive-email-with-diffs post-receive ) done echo "" } -#count -#missing_in_git -missing_in_gitweb -fill_descriptions $(ls git | egrep -v "${gitwebpattern}") -upload_archives $(ls git | egrep -v "${gitwebpattern}") +# missing_gitweb +args="$@" +[[ -z "$args" ]] && args=$(ls -d *.git) +fill_descriptions $args +check_permissions $args +check_configs $args +check_hooks $args