Avoid creating a config file with all blank values if postinst configure fails.
This commit is contained in:
parent
4711eaf741
commit
f9aa0398e5
31
debian/dump1090-mutability.postinst
vendored
31
debian/dump1090-mutability.postinst
vendored
|
@ -19,19 +19,23 @@ set -e
|
||||||
|
|
||||||
NAME=dump1090-mutability
|
NAME=dump1090-mutability
|
||||||
CONFIGFILE=/etc/default/$NAME
|
CONFIGFILE=/etc/default/$NAME
|
||||||
|
SRCCONFIGFILE=$CONFIGFILE
|
||||||
TEMPLATECONFIG=/usr/share/$NAME/config-template
|
TEMPLATECONFIG=/usr/share/$NAME/config-template
|
||||||
CRONFILE=/etc/cron.d/$NAME
|
CRONFILE=/etc/cron.d/$NAME
|
||||||
TEMPLATECRON=/usr/share/$NAME/cron-template
|
TEMPLATECRON=/usr/share/$NAME/cron-template
|
||||||
SEDSCRIPT=$CONFIGFILE.sed.tmp
|
SEDSCRIPT=$CONFIGFILE.sed.tmp
|
||||||
|
|
||||||
subvar_raw() {
|
subvar_raw() {
|
||||||
# $1 = db var value
|
# $1 = config value
|
||||||
# $2 = config var name
|
# $2 = config var name
|
||||||
|
|
||||||
# if not present in the config file, add it
|
if ! grep -Eq "^ *$2=" $SRCCONFIGFILE; then
|
||||||
test -z "$1" || grep -Eq "^ *$2=" $CONFIGFILE || echo "$2=" >> $CONFIGFILE
|
# if not present in the config file, add it at the end
|
||||||
# add to the sedscript
|
echo "$a $2=$1" >> $SEDSCRIPT
|
||||||
|
else
|
||||||
|
# otherwise, replace the current value
|
||||||
echo "s@^ *$2=.*@$2=\"$1\"@" >>$SEDSCRIPT
|
echo "s@^ *$2=.*@$2=\"$1\"@" >>$SEDSCRIPT
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
subvar() {
|
subvar() {
|
||||||
|
@ -52,9 +56,15 @@ case "$1" in
|
||||||
configure)
|
configure)
|
||||||
. /usr/share/debconf/confmodule
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
# Generate config file, if it doesn't exist.
|
# If we have no config file, start from the template.
|
||||||
if [ ! -e $CONFIGFILE ]; then
|
# Avoid copying the template to the config file
|
||||||
tail -n +4 $TEMPLATECONFIG >$CONFIGFILE
|
# before substitution; this leaves an all-blank config
|
||||||
|
# in place if something fails, which causes problems
|
||||||
|
# on subsequent reconfiguration.
|
||||||
|
SKIPLINES=0
|
||||||
|
if [ ! -e $SRCCONFIGFILE ]; then
|
||||||
|
SRCCONFIGFILE=$TEMPLATECONFIG
|
||||||
|
SKIPLINES=4
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f $SEDSCRIPT
|
rm -f $SEDSCRIPT
|
||||||
|
@ -90,8 +100,11 @@ case "$1" in
|
||||||
subvar_yn log-decoded-messages LOG_DECODED_MESSAGES
|
subvar_yn log-decoded-messages LOG_DECODED_MESSAGES
|
||||||
subvar extra-args EXTRA_ARGS
|
subvar extra-args EXTRA_ARGS
|
||||||
|
|
||||||
cp -a -f $CONFIGFILE $CONFIGFILE.tmp
|
tail -n +$SKIPLINES < $SRCCONFIGFILE | sed -f $SEDSCRIPT > $CONFIGFILE.tmp
|
||||||
sed -f $SEDSCRIPT < $CONFIGFILE > $CONFIGFILE.tmp
|
if [ -e $CONFIGFILE ]; then
|
||||||
|
chown --reference=$CONFIGFILE $CONFIGFILE.tmp
|
||||||
|
chmod --reference=$CONFIGFILE $CONFIGFILE.tmp
|
||||||
|
fi
|
||||||
mv -f $CONFIGFILE.tmp $CONFIGFILE
|
mv -f $CONFIGFILE.tmp $CONFIGFILE
|
||||||
rm $SEDSCRIPT
|
rm $SEDSCRIPT
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue