Peaufinage...
authorProgfou <jean-christophe.andre@auf.org>
Sun, 28 Sep 2008 23:28:47 +0000 (06:28 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Sun, 28 Sep 2008 23:28:47 +0000 (06:28 +0700)
Makefile
auf-git-etc.sh
debian/control
debian/postinst
sample/post-commit

index 508a3c4..4585336 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -8,5 +8,12 @@ install: build
 clean:
 
 deb:
-        debuild
+       debuild -I.git -I*.ex
+
+test:
+       debuild -b -us -uc -I.git -I*.ex
+       rsync -avP ../auf-git-etc_*.deb test.vn.auf.org:/tmp/
+
+dput: deb
+       dput auf-etch ../auf-git-etc_*.changes
 
index 8b9e88e..7fcfde0 100644 (file)
@@ -1,8 +1,8 @@
 if [ -n "$PS1" ]; then
   # on lance un git status sur l'utilisateur s'il est dans le groupe
-  # aufadmin ou bien si c'est root
-  if $(id -Gn | grep -qw aufadmin) || test $(id -u) -eq 0; then
-    (cd / ; sudo /usr/bin/git status -a)
+  # admin ou bien si c'est root
+  if $(id -Gn | grep -qw admin) || test $(id -u) -eq 0; then
+    test -x /usr/bin/git && (cd / ; sudo /usr/bin/git status -a)
   fi
   # les lignes suivantes tentent de configurer les variables GIT_*
   # si les résultats ne sont pas bien "devinés", définir les bonnes
index 1c41ffd..a98b96e 100644 (file)
@@ -8,6 +8,7 @@ Standards-Version: 3.7.2
 Package: auf-git-etc
 Architecture: all
 Depends: git-core, ${misc:Depends}
+Recommends: sudo
 Suggests: tig
 Description: suivi de /etc et /usr/local via git
  Ce paquet permet d'automatiser l'installation du suivi de /etc et
index 000b1ce..f6c5450 100644 (file)
@@ -21,39 +21,11 @@ set -e
 case "$1" in
     configure)
 
-       # on crée au besoin le dépôt GIT global à ce système
-       if [ ! -d /var/lib/git/root ]; then
-           cd /
-           git init-db
-           chmod 0700 /.git
-           mkdir -p /var/lib/git
-           mv /.git /var/lib/git/root
-           cp -a /usr/share/doc/auf-git-etc-*/sample/exclude /.git/info/
-           cp -a /usr/share/doc/auf-git-etc-*/sample/post-commit /.git/hooks/
-           chmod 0755 /.git/hooks/post-commit
-           git add etc usr/local
-           git commit -m "Mise en route du suivi de /etc et /usr/local." \
-               --author "Installation auf-git-etc <root@apt.auf.org>"
-       fi
-       if [ ! -L /.git ]; then
-           ln -s /var/lib/git/root /.git
-       fi
-
-       # on conserve l'environnement GIT pendant un sudo
-       if ! grep -q "env_keep.*GIT" /etc/sudoers; then
-           sed -i '/^$/{s//Defaults env_keep += "GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL"\n/;:l;n;b l}' /etc/sudoers
-       fi
-
-       # on autorise le groupe aufadmin à demander le statut GIT
-       if ! grep -q '^%aufadmin.*git status' /etc/sudoers; then
-           echo '%aufadmin ALL=(ALL) NOPASSWD: /usr/bin/git status -a' >> /etc/sudoers
-       fi
-
        # on ajoute de la souplesse dans /etc/profile
        # XXX: c'est pas vraiment spécifique à ce paquet...
-       if ! grep -q '/etc/profile.d' /etc/profile; then
-           sed -i '/^PATH/r /proc/self/fd/0' /etc/profile << __EOF__
-
+       if ! grep -q '/etc/profile\.d' /etc/profile; then
+           sed -i -e '/^$/{r /proc/self/fd/0' -e ':l;n;b l}' \
+               /etc/profile << __EOF__
 if [ -d /etc/profile.d ]; then
   for i in /etc/profile.d/*.sh; do
     if [ -r $i ]; then
@@ -62,9 +34,42 @@ if [ -d /etc/profile.d ]; then
   done
   unset i
 fi
+
 __EOF__
        fi
 
+       # gestion transparente de GIT via sudo
+       if test -f /etc/sudoers; then
+
+           # on conserve l'environnement GIT pendant un sudo
+           if ! grep -q "env_keep.*GIT" /etc/sudoers; then
+               sed -i '/^$/{s//Defaults env_keep += "GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL"\n/;:l;n;b l}' /etc/sudoers
+           fi
+
+           # on autorise le groupe admin à demander le statut GIT
+           if test -f /etc/sudoers && ! grep -q '^%admin.*git status' /etc/sudoers; then
+               echo '%admin ALL=(ALL) NOPASSWD: /usr/bin/git status -a' >> /etc/sudoers
+           fi
+
+       fi
+
+       # on crée au besoin le dépôt GIT global à ce système
+       if [ ! -d /var/lib/git/root ]; then
+           cd /
+           git init-db
+           chmod 0700 /.git
+           mkdir -p /var/lib/git
+           mv /.git /var/lib/git/root
+           ln -s /var/lib/git/root /.git
+           cp -a /usr/share/doc/auf-git-etc/sample/exclude /.git/info/
+           cp -a /usr/share/doc/auf-git-etc/sample/post-commit /.git/hooks/
+           chmod 0755 /.git/hooks/post-commit
+           git add etc usr/local
+           # TODO: ajouter -q quand on sera en git ≥ 1.5 (Debian "Lenny")
+           git commit -m "Mise en route du suivi de /etc et /usr/local." \
+               --author "Installation auf-git-etc <root@apt.auf.org>"
+       fi
+
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
index a81677a..9cf6720 100644 (file)
@@ -1,3 +1,4 @@
+#!/bin/sh
 #recipients="admins@XX.auf.org"   # adresse pour l'envoi du mail
 recipients="root"
 # On modifie un peu la sortie de git show :
@@ -7,8 +8,8 @@ recipients="root"
 # et on envoie le tout via sendmail
 PATH=/usr/sbin:/usr/bin:/sbin:/bin
 git show --pretty=email | 
-  sed -e '1,6s/^From: /From: git '`hostname -f`' - /'
-       -e '1,6s/^Subject: \[PATCH\]/Subject: git-commit:/'
-       -e '2iTo: '"${recipients}" | 
+  sed  -e '1,6s/^From: /From: '`hostname -f`' - /' \
+       -e '1,6s/^Subject: \[PATCH\]/Subject: git-commit:/' \
+       -e '3iTo: '"${recipients}" |
   head -c 16k | /usr/sbin/sendmail ${recipients}
 exit 0