#!/bin/sh
set -e

# /usr/share/doc/dnsmasq was a symlink in versions < 2.81-1 (see #985282)
dpkg-maintscript-helper symlink_to_dir /usr/share/doc/dnsmasq dnsmasq-base 2.84-1.2~ dnsmasq -- "$@"

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


