* Annulation du suivi du dpkg.log : trop lourd de cette façon.
[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
8# summary of how this script can be called:
9# * <postinst> `configure' <most-recently-configured-version>
10# * <old-postinst> `abort-upgrade' <new version>
11# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12# <new-version>
13# * <postinst> `abort-remove'
14# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
15# <failed-install-package> <version> `removing'
16# <conflicting-package> <version>
17# for details, see http://www.debian.org/doc/debian-policy/ or
18# the debian-policy package
19
20
21case "$1" in
22 configure)
23
8b3c87f0 24 # on ajoute de la souplesse dans /etc/profile
539b9d2f 25 # XXX: pas vraiment spécifique à ce paquet... en attendant Lenny !
89e5ff8d
P
26 if ! grep -q '/etc/profile\.d' /etc/profile; then
27 sed -i -e '/^$/{r /proc/self/fd/0' -e ':l;n;b l}' \
28 /etc/profile << __EOF__
8b3c87f0
P
29if [ -d /etc/profile.d ]; then
30 for i in /etc/profile.d/*.sh; do
b851e8b4
P
31 if [ -r \$i ]; then
32 . \$i
8b3c87f0
P
33 fi
34 done
35 unset i
36fi
89e5ff8d 37
8b3c87f0
P
38__EOF__
39 fi
40
89e5ff8d
P
41 # gestion transparente de GIT via sudo
42 if test -f /etc/sudoers; then
89e5ff8d
P
43 # on conserve l'environnement GIT pendant un sudo
44 if ! grep -q "env_keep.*GIT" /etc/sudoers; then
45 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
46 fi
89e5ff8d
P
47 # on autorise le groupe admin à demander le statut GIT
48 if test -f /etc/sudoers && ! grep -q '^%admin.*git status' /etc/sudoers; then
49 echo '%admin ALL=(ALL) NOPASSWD: /usr/bin/git status -a' >> /etc/sudoers
50 fi
89e5ff8d
P
51 fi
52
a26212a8
P
53 # on vérifie la présence d'un existant
54 if [ -d /.git ]; then
55 # est-il à notre norme ?
56 if [ "`readlink -f /.git`" != "/var/lib/git/root" ]; then
57 echo ""
58 echo "ATTENTION : un /.git existe mais ne pointe pas sur /var/lib/git/root !"
59 echo "ATTENTION : vous avez pris de l'avance, ce sera à vous de gérer ça... ;-)"
60 echo ""
e981b767 61 else
d7e5c4c5 62 # ok, on gère la migration en conffiles
e981b767
P
63 if [ ! -L /.git/info ]; then
64 for f in /etc/auf-git-etc/info/* ; do
65 mv -f ${f} ${f}.dpkg-dist
66 done
67 mv /.git/info/* /etc/auf-git-etc/info/
68 rmdir /.git/info
69 ln -s /etc/auf-git-etc/info /.git/
70 fi
71 if [ ! -L /.git/hooks ]; then
72 for f in /etc/auf-git-etc/hooks/* ; do
73 mv -f ${f} ${f}.dpkg-dist
74 done
75 mv /.git/hooks/* /etc/auf-git-etc/hooks/
76 rmdir /.git/hooks
77 ln -s /etc/auf-git-etc/hooks /.git/
78 fi
d7e5c4c5
P
79 # on gère l'annulation du suivi du dpkg.log
80 cd /
81 if git ls-files | grep -q var/log/dpkg.log ; then
82 # FIXME: ajouter --cached lors du passage en 1.5
83 git rm var/log/dpkg.log
84 fi
a26212a8
P
85 fi
86 # on vérifie la présence d'un existant
87 elif [ -d /var/lib/git/root ]; then
88 echo ""
89 echo "ATTENTION : un /var/lib/git/root existe mais il manque le lien dans /.git !"
90 echo "ATTENTION : vous pouvez le réinstaller avec : ln -s /var/lib/git/root /.git"
91 echo ""
92 # on crée le dépôt GIT global à ce système
93 else
89e5ff8d 94 cd /
e981b767 95 git init-db > /dev/null
539b9d2f
P
96 # git >= 1.5
97 #git config status.relativePaths false
89e5ff8d
P
98 chmod 0700 /.git
99 mkdir -p /var/lib/git
100 mv /.git /var/lib/git/root
101 ln -s /var/lib/git/root /.git
e981b767
P
102 # déplacement des configurations par défaut dans /etc/auf-git-etc/
103 cd /.git
104 for d in info hooks ; do
105 for f in $d/* ; do
106 if [ -e /etc/auf-git-etc/${f} ]; then
107 rm -f -r ${f}
108 else
109 mv ${f} /etc/auf-git-etc/${f}
110 fi
111 done
112 rmdir $d
113 ln -s /etc/auf-git-etc/$d $d
114 done
115 # mise en route du suivi
116 cd /
6bc95061 117 git add etc usr/local var boot
89e5ff8d
P
118 # TODO: ajouter -q quand on sera en git ≥ 1.5 (Debian "Lenny")
119 git commit -m "Mise en route du suivi de /etc et /usr/local." \
e981b767
P
120 --author "Installation auf-git-etc <root@apt.auf.org>" \
121 > /dev/null
89e5ff8d
P
122 fi
123
8b3c87f0
P
124 ;;
125
126 abort-upgrade|abort-remove|abort-deconfigure)
127 ;;
128
129 *)
130 echo "postinst called with unknown argument \`$1'" >&2
131 exit 1
132 ;;
133esac
134
135# dh_installdeb will replace this with shell code automatically
136# generated by other debhelper scripts.
137
138#DEBHELPER#
139
140exit 0