Première tentative de support de fichiers de configuration Debian.
[auf-git-etc.git] / debian / postinst
CommitLineData
8b3c87f0
P
1#!/bin/sh
2# postinst script for auf-git-etc
3#
4# see: dh_installdeb(1)
5
6set -e
7
539b9d2f
P
8# XXX: debogage, à supprimer avant release
9echo "==> postinst($@) - `date`" >> /tmp/auf-git-etc.debug
10ls -la /etc/auf-git-etc >> /tmp/auf-git-etc.debug
11
8b3c87f0
P
12# summary of how this script can be called:
13# * <postinst> `configure' <most-recently-configured-version>
14# * <old-postinst> `abort-upgrade' <new version>
15# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
16# <new-version>
17# * <postinst> `abort-remove'
18# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
19# <failed-install-package> <version> `removing'
20# <conflicting-package> <version>
21# for details, see http://www.debian.org/doc/debian-policy/ or
22# the debian-policy package
23
24
25case "$1" in
26 configure)
27
8b3c87f0 28 # on ajoute de la souplesse dans /etc/profile
539b9d2f 29 # XXX: pas vraiment spécifique à ce paquet... en attendant Lenny !
89e5ff8d
P
30 if ! grep -q '/etc/profile\.d' /etc/profile; then
31 sed -i -e '/^$/{r /proc/self/fd/0' -e ':l;n;b l}' \
32 /etc/profile << __EOF__
8b3c87f0
P
33if [ -d /etc/profile.d ]; then
34 for i in /etc/profile.d/*.sh; do
b851e8b4
P
35 if [ -r \$i ]; then
36 . \$i
8b3c87f0
P
37 fi
38 done
39 unset i
40fi
89e5ff8d 41
8b3c87f0
P
42__EOF__
43 fi
44
89e5ff8d
P
45 # gestion transparente de GIT via sudo
46 if test -f /etc/sudoers; then
89e5ff8d
P
47 # on conserve l'environnement GIT pendant un sudo
48 if ! grep -q "env_keep.*GIT" /etc/sudoers; then
49 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
50 fi
89e5ff8d
P
51 # on autorise le groupe admin à demander le statut GIT
52 if test -f /etc/sudoers && ! grep -q '^%admin.*git status' /etc/sudoers; then
53 echo '%admin ALL=(ALL) NOPASSWD: /usr/bin/git status -a' >> /etc/sudoers
54 fi
89e5ff8d
P
55 fi
56
a26212a8
P
57 # on vérifie la présence d'un existant
58 if [ -d /.git ]; then
59 # est-il à notre norme ?
60 if [ "`readlink -f /.git`" != "/var/lib/git/root" ]; then
61 echo ""
62 echo "ATTENTION : un /.git existe mais ne pointe pas sur /var/lib/git/root !"
63 echo "ATTENTION : vous avez pris de l'avance, ce sera à vous de gérer ça... ;-)"
64 echo ""
65 fi
66 # on vérifie la présence d'un existant
67 elif [ -d /var/lib/git/root ]; then
68 echo ""
69 echo "ATTENTION : un /var/lib/git/root existe mais il manque le lien dans /.git !"
70 echo "ATTENTION : vous pouvez le réinstaller avec : ln -s /var/lib/git/root /.git"
71 echo ""
72 # on crée le dépôt GIT global à ce système
73 else
89e5ff8d
P
74 cd /
75 git init-db
539b9d2f
P
76 # git >= 1.5
77 #git config status.relativePaths false
89e5ff8d
P
78 chmod 0700 /.git
79 mkdir -p /var/lib/git
80 mv /.git /var/lib/git/root
81 ln -s /var/lib/git/root /.git
539b9d2f
P
82 ln -s -f /etc/auf-git-etc/exclude /.git/info/
83 ln -s -f /etc/auf-git-etc/post-commit /.git/hooks/
89e5ff8d 84 git add etc usr/local
539b9d2f
P
85 git add boot/grub/menu.lst || true # absent des serveurs virtuels
86 git add var/chroot/bind/etc || true # absent des serveurs non DNS
89e5ff8d
P
87 # TODO: ajouter -q quand on sera en git ≥ 1.5 (Debian "Lenny")
88 git commit -m "Mise en route du suivi de /etc et /usr/local." \
89 --author "Installation auf-git-etc <root@apt.auf.org>"
90 fi
91
8b3c87f0
P
92 ;;
93
94 abort-upgrade|abort-remove|abort-deconfigure)
95 ;;
96
97 *)
98 echo "postinst called with unknown argument \`$1'" >&2
99 exit 1
100 ;;
101esac
102
103# dh_installdeb will replace this with shell code automatically
104# generated by other debhelper scripts.
105
106#DEBHELPER#
107
108exit 0