if `id -Gn | grep -qw admin` || test `id -u` -eq 0; then
test -x /usr/bin/git -a -d /.git && (cd / ; sudo /usr/bin/git status -a) |
/bin/sed -e '1{/^nothing to commit/d}'
+ # deux variables indispensables à cause d'un bogue de git avec la racine
+ # disons que les admins ne gèrent rien d'autre… au pire, .bash_profile !
+ GIT_DIR=/.git
+ GIT_WORK_TREE=/
+ export GIT_DIR GIT_WORK_TREE
fi
# les lignes suivantes tentent de configurer les variables GIT_*
# si les résultats ne sont pas bien "devinés", définir les bonnes
Package: auf-git-etc
Architecture: all
-Depends: git-core (>= 1:1.4.4), git-core (<< 1:1.5), sudo, ${misc:Depends}
+Depends: git-core (>= 1:1.5), sudo, ${misc:Depends}
Recommends: exim4 | mail-transport-agent, cron
Suggests: tig
Description: suivi de /etc et /usr/local via git
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
+ sed -i '/^$/{s//Defaults env_keep += "GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_DIR GIT_WORK_TREE"\n/;:l;n;b l}' /etc/sudoers
+ # configuration déjà là, on ajoute les nouveautés avec 1.5
+ elif ! grep -q "env_keep.*GIT_DIR" /etc/sudoers; then
+ sed -i 's/GIT_AUTHOR_EMAIL/GIT_AUTHOR_EMAIL GIT_DIR GIT_WORK_TREE/' /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
# on gère l'annulation du suivi du dpkg.log
cd /
if git ls-files | grep -q var/log/dpkg.log ; then
- # FIXME: ajouter --cached lors du passage en 1.5
- git rm var/log/dpkg.log
+ git rm --cached var/log/dpkg.log
fi
+ # compensation des changements qui viennent avec 1.5…
+ if ! git-repo-config status.relativePaths >/dev/null ; then
+ git-repo-config status.relativePaths false
+ fi
+ #if ! git-repo-config core.worktree >/dev/null ; then
+ # git-repo-config core.worktree /
+ #fi
fi
# on vérifie la présence d'un existant
elif [ -d /var/lib/git/root ]; then
else
cd /
git init-db > /dev/null
- # git >= 1.5
- #git config status.relativePaths false
+ git config status.relativePaths false
+ # TODO ? git-repo-config core.worktree /
chmod 0700 /.git
mkdir -p /var/lib/git
mv /.git /var/lib/git/root
# mise en route du suivi
cd /
git add etc usr/local var boot
- # 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>" \
- > /dev/null
+ git commit -q -m "Mise en route du suivi de /etc et /usr/local." \
+ --author "Installation auf-git-etc <root@apt.auf.org>"
fi
;;