summaryrefslogtreecommitdiffstats
path: root/debian/wide-dhcpv6-client.postinst
blob: 5264de15bd6e3fddfea84ff1a9b0a441362c599b (plain)
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
#!/bin/sh

set -e

case "$1" in
	configure|reconfigure)
		# continue
		;;
	abort-upgrade|abort-remove|abort-deconfigure)
		exit 0
		;;
	*)
		echo "postinst called with unknown argument \`$1'" >&2
		exit 0
		;;
esac

# debconf
. /usr/share/debconf/confmodule

DHCP6CCTLKEY=/etc/wide-dhcpv6/dhcp6cctlkey
INITCONFFILE=/etc/default/wide-dhcpv6-client
[ -f ${INITCONFFILE} ] &&
    VERBOSE=$(grep ^VERBOSE ${INITCONFFILE}|sed -e 's:^VERBOSE=\(.*\):\1:')

# The key mustn't be world readable
umask 066

[ -r "${DHCP6CCTLKEY}" ] || {
	echo "Generating ${DHCP6CCTLKEY}..." >&2
	dd if=/dev/random bs=32 count=1 2>/dev/null | \
		uuencode -m ${DHCP6CCTLKEY} | \
		head -n 2 | tail -n 1 > ${DHCP6CCTLKEY}
}

umask 022

echo "Generating ${INITCONFFILE}..." >&2
cat >$INITCONFFILE <<'EOFINITCONFFILE'
# Defaults for dhcpv6 client initscript
# Used by /etc/init.d/wide-dhcpv6-client

# Interfaces on which the client should send DHCPv6 requests and listen to
# answers. If empty, the client is deactivated.
INTERFACES=""

# Verbose level for syslog. Default is 0 (0: minimal; 1: info; 2: debug)
#VERBOSE=0
EOFINITCONFFILE
[ -n "$VERBOSE" ] && echo VERBOSE=${VERBOSE} >> ${INITCONFFILE}

# Debconf
db_get wide-dhcpv6-client/interfaces || true
INTERFACES=${RET}

TMPFILE=`mktemp -q ${INITCONFFILE}.new.XXXXXX`
sed -e "s,^[[:space:]]*INTERFACES[[:space:]]*=.*,INTERFACES=\"${INTERFACES}\"," \
        <${INITCONFFILE} >${TMPFILE}
cp ${TMPFILE} ${INITCONFFILE}
rm ${TMPFILE}

db_stop

#DEBHELPER#

exit 0