diff options
Diffstat (limited to 'source/n/dnsmasq/doinst.sh')
-rw-r--r-- | source/n/dnsmasq/doinst.sh | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/source/n/dnsmasq/doinst.sh b/source/n/dnsmasq/doinst.sh index 5a1ca426..9aadc3e5 100644 --- a/source/n/dnsmasq/doinst.sh +++ b/source/n/dnsmasq/doinst.sh @@ -1,16 +1,26 @@ config() { NEW="$1" - OLD="`dirname $NEW`/`basename $NEW .new`" + OLD="$(dirname $NEW)/$(basename $NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD - elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy rm $NEW fi # Otherwise, we leave the .new copy for the admin to consider... } +preserve_perms() { + NEW="$1" + OLD="$(dirname ${NEW})/$(basename ${NEW} .new)" + if [ -e ${OLD} ]; then + cp -a ${OLD} ${NEW}.incoming + cat ${NEW} > ${NEW}.incoming + mv ${NEW}.incoming ${NEW} + fi + config ${NEW} +} config etc/dnsmasq.conf.new -config etc/rc.d/rc.dnsmasq.new +preserve_perms etc/rc.d/rc.dnsmasq.new # This should be mostly useless... rm -f etc/rc.d/rc.dnsmasq.new |