}
+
function fill_descriptions () {
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking descriptions "
for arg in "$@" ; do
echo ""
}
-function upload_archives () {
- echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking configs for uploadarch "
+function check_permissions () {
+ echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking permissions "
for arg in "$@" ; do
# accept args like plcapi or plcapi.git
b=$(basename $arg .git)
git=${b}.git
echo -n "$git "
- if ! grep -q uploadarch $git/config ; then
- echo -n $i "Setting.. ";
- cat >> $git/config <<EOF
-[daemon]
- uploadpack = false
- uploadarch = true
-EOF
- fi
+ chown -R root:onelab $git
+ chmod -R g+w,o-w $git
+ done
+ echo ""
+}
+
+function check_configs () {
+ echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking config (upload*, hooks...) "
+ for arg in "$@" ; do
+ # accept args like plcapi or plcapi.git
+ b=$(basename $arg .git)
+ git=${b}.git
+ echo -n "$git "
+ cd $git
+ git config core.sharedrepository >& /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 build@onelab.eu; echo -n "mailinglist "; }
+ git config hooks.announcelist >& /dev/null || { git config hooks.announcelist build@onelab.eu; echo -n "announcelist "; }
+ git config hooks.envelopesender >& /dev/null || { git config hooks.envelopesender build@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 ""
}
args="$@"
[[ -z "$args" ]] && args=$(ls -d *.git)
fill_descriptions $args
-upload_archives $args
+check_permissions $args
+check_configs $args
+check_hooks $args