File: bandwidthd.postinst

package info (click to toggle)
bandwidthd 2.0.1%2Bcvs20090917-5
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 1,568 kB
  • sloc: sh: 2,958; ansic: 2,743; php: 1,263; yacc: 216; makefile: 158; lex: 36; sql: 27
file content (125 lines) | stat: -rw-r--r-- 3,126 bytes parent folder | download
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/bin/sh

set -e

if [ "$BANDWIDTHD_PACKAGE_DEBUG" != "" ]; then
	echo "bandwidthd.postinst: $*"
	set -x
fi

# Always source debconf library in postinst.
. /usr/share/debconf/confmodule

# -------------------------------------------------------------
# Create bandwidthd.conf based on debconf data, and install it.
# -------------------------------------------------------------

if [ "$1" = "configure" ]; then

db_get bandwidthd/dev || true
DEV=$RET

db_get bandwidthd/subnet || true
SUBNETS=$RET
# ATTENTION! $SUBNETS needs to be parsed and split.
# Example contents: 192.168.1.0/24, 172.20.0.0 255.255.0.0, 10.0.0.0/8

db_get bandwidthd/outputcdf || true
OUTPUTCDF=$RET

db_get bandwidthd/recovercdf || true
RECOVERCDF=$RET

db_get bandwidthd/metarefresh || true
if [ "$RET" = "" ]; then
	RET=150
fi
METAREFRESH=$RET

db_get bandwidthd/promisc || true
PROMISC=$RET


if [ "$BANDWIDTHD_PACKAGE_DEBUG" != "" ]; then
	echo "This is the bandwidthd postinst script reporting debconf settings:"
	echo "dev: $DEV"
	echo "subnets: $SUBNETS"
	echo "outputcdf: $OUTPUTCDF"
	echo "recovercdf: $RECOVERCDF"
	echo "metarefresh: $METAREFRESH"
	echo "promisc: $PROMISC"
fi

# parse a bandwidthd.conf template and insert dev, subnet and
# recover_cdf rules, then use ucf to install config file.

TMPDIR=$(mktemp -d)
TMPFILE=$TMPDIR/bandwidthd.conf

cp /usr/share/doc/bandwidthd/bandwidthd.conf $TMPFILE
chmod 640 $TMPFILE

RULE='s%^#DEBCONF_DEVS#$%dev "'$DEV'"%'
sed -e "$RULE" < $TMPFILE > $TMPFILE.new
mv $TMPFILE.new $TMPFILE

PARSED_SUBNETS=$(echo $SUBNETS | sed -e 's/, */:/g')
#PARSED_SUBNETS=$(echo $PARSED_SUBNETS | sed -e 's/^/subnet /')
OLDIFS=$IFS
IFS=":"
for subnet in $PARSED_SUBNETS ; do
	# CIDR and dotted-quad subnets have different syntax:
	# subnet 1.2.3.4/24
	# subnet 4.3.2.1 255.255.255.0
	subnet=$(echo $subnet | sed -e 's#/\(.*\..*\)# \1#')
	RULE='s%^#DEBCONF_SUBNETS#$%subnet '$subnet'\
#DEBCONF_SUBNETS#%'
	sed -e "$RULE" < $TMPFILE > $TMPFILE.new
	mv $TMPFILE.new $TMPFILE
done
RULE='s%^#DEBCONF_SUBNETS#$%%'
sed -e "$RULE" < $TMPFILE > $TMPFILE.new
mv $TMPFILE.new $TMPFILE
IFS=$OLDIFS

RULE='s%^#DEBCONF_OUTPUTCDF#$%output_cdf '$OUTPUTCDF'%'
sed -e "$RULE" < $TMPFILE > $TMPFILE.new
mv $TMPFILE.new $TMPFILE


RULE='s%^#DEBCONF_RECOVERCDF#$%recover_cdf '$RECOVERCDF'%'
sed -e "$RULE" < $TMPFILE > $TMPFILE.new
mv $TMPFILE.new $TMPFILE

RULE='s%^#DEBCONF_METAREFRESH#$%meta_refresh '$METAREFRESH'%'
sed -e "$RULE" < $TMPFILE > $TMPFILE.new
mv $TMPFILE.new $TMPFILE

RULE='s%^#DEBCONF_PROMISC#$%promiscuous '$PROMISC'%'
sed -e "$RULE" < $TMPFILE > $TMPFILE.new
mv $TMPFILE.new $TMPFILE

# Install new configuration...
chmod 640 $TMPFILE
ucf --debconf-ok $TMPFILE /etc/bandwidthd/bandwidthd.conf
chmod 640 /etc/bandwidthd/bandwidthd.conf

# clean up
rm -rf $TMPDIR

# stop debconf
db_stop


fi # "$1" = "configure"

# ----------------------------------------------------------------------

# reload apache2 config for installed /bandwidthd alias, ignore errors
# since we don't want to actually depend on having apache installed.
invoke-rc.d apache2 reload || true

# debhelper autoinserted stuff:

#DEBHELPER#