#!/bin/sh
set -e

# Code copied from dh_systemd_enable ----------------------
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask dnsmasq.service >/dev/null || true

# was-enabled defaults to true, so new installations run enable.
if deb-systemd-helper --quiet was-enabled dnsmasq.service; then
	# Enables the unit on first installation, creates new
	# symlinks on upgrades if the unit file has changed.
	deb-systemd-helper enable dnsmasq.service >/dev/null || true
else
	# Update the statefile to add new symlinks (if any), which need to be
	# cleaned up on purge. Also remove old symlinks.
	deb-systemd-helper update-state dnsmasq.service >/dev/null || true
fi
# End code copied from dh_systemd_enable ------------------

if [ -x /etc/init.d/dnsmasq ]; then
   update-rc.d dnsmasq defaults 15 85 >/dev/null

   if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
      if [ -e /var/run/dnsmasq/dnsmasq.pid ]; then
          ACTION=restart
      else
          ACTION=start
      fi

      if [ -x /usr/sbin/invoke-rc.d ] ; then
         invoke-rc.d dnsmasq $ACTION || true
      else
         /etc/init.d/dnsmasq $ACTION || true
      fi
   fi
fi


