File: fix_conffiles

package info (click to toggle)
afterstep 2.2.12-18.1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 33,184 kB
  • sloc: ansic: 201,695; sh: 5,894; xml: 3,721; makefile: 2,094; perl: 1,558; cpp: 811
file content (104 lines) | stat: -rw-r--r-- 2,603 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/sh
# vim: ts=3 et

set -e

[ -d debian ] || cd ..
[ -d debian ] || cd ..
[ -d debian ] || { echo "Can't find debian directory" ; exit 1; }

ASDIR=usr/share/afterstep
UCFDIR=$ASDIR/ucf
CONFDIR1=etc/X11/afterstep
CONFDIR2=etc/menu-methods

gen_dh_script() {
pkg=$1;    shift
type=$1; shift
cfgdir=$1; shift
args=$*
script="debian/$pkg.$type.debhelper"
touch $script
cat >> "$script.tmp" << EOF
# Automatically added by $0

cfgdir="$cfgdir"
ucfdir="/$UCFDIR"
cfgfiles="$args"
package="$pkg"

EOF
case "$type" in
   postinst)
      cat >> "$script.tmp" << "EOF"
if [ "$1" = "configure" ] ; then
   for f in $cfgfiles; do
      uf="$ucfdir/$f"
      cf="$cfgdir/${f%.menu-method}"
      ucf --three-way "$uf" "$cf"
      ucfr "$package" "$cf"
   done
fi

EOF
   ;;
   postrm)
      cat >> "$script.tmp" << "EOF"
if [ "$1" = "purge" ] ; then
   # check is ucf is still installed  (see Bug#325905)
   command -v ucf >/dev/null && HAS_UCF=yes || HAS_UCF=no
   command -v ucfr >/dev/null && HAS_UCFR=yes || HAS_UCFR=no

   for f in $cfgfiles; do
      cf="$cfgdir/${f%.menu-method}"
      # we mimic dpkg as closely as possible, so we remove configuration
      # files with dpkg backup extensions too:
      for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist '';  do
         rm -f "${cf}${ext}"
      done
      if [ "$HAS_UCF" = "yes"  ]; then ucf  --purge "$cf"; fi
      if [ "$HAS_UCFR" = "yes" ]; then ucfr --purge "$package" "$cf"; fi
   done

   [ ! -d "$cfgdir" ] || rmdir --parents --ignore-fail-on-non-empty "$cfgdir"
fi

EOF
esac
echo "# End automatically added section" >> "$script.tmp"
[ -e "$script" ] && cat "$script" >> "$script.tmp"
mv "$script.tmp" "$script"
}


for pkg in "$@"; do
   DESTDIR=debian/$pkg;
   rm -f debian/cfgfiles

   if [ "$pkg" = "afterstep-data" ]; then
      mkdir -p  "$DESTDIR/$UCFDIR"
      for x in $DESTDIR/$ASDIR/*; do
         [ ! -f "$x" ] && continue;
         bx="${x##*/}"
         [ "$bx" = "CREDITS" ] && continue
         mv "$x" "$DESTDIR/$UCFDIR/$bx"
         ln -sv "/$CONFDIR1/$bx" "$x"
         echo -n "$bx " >> debian/cfgfiles
      done

      gen_dh_script afterstep-data postinst "/$CONFDIR1" `cat debian/cfgfiles`
      gen_dh_script afterstep-data postrm   "/$CONFDIR1" `cat debian/cfgfiles`
   fi


   if [ "$pkg" = "afterstep" ]; then
      mkdir -p  "$DESTDIR/$UCFDIR"
      install -p -m 0644  debian/afterstep.menu-method "$DESTDIR/$UCFDIR"
      gen_dh_script afterstep postinst "/$CONFDIR2" afterstep.menu-method
      gen_dh_script afterstep postrm   "/$CONFDIR2" afterstep.menu-method
   fi
done

rm -f debian/cfgfiles
exit 0