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#
|