#!/bin/sh -e
#
# summary of how this script can be called:
#    * <postinst> `configure' <most-recently-configured-version>
#    * <old-postinst> `abort-upgrade' <new version>
#    * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#    <new-version>
#    * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#      <failed-install-package> <version> `removing'
#      <conflicting-package> <version>
# for details, see /usr/share/doc/packaging-manual/
#
# quoting from the policy:
#     Any necessary prompting should almost always be confined to the
#     post-installation script, and should be protected with a conditional
#     so that unnecessary prompting doesn't happen if a package's
#     installation fails and the `postinst' is called with `abort-upgrade',
#     `abort-remove' or `abort-deconfigure'.

umask 022

upgrade_old()
{
  # if this conditions are true assume NIS is already setup correctly
  if [ -f /etc/default/nis -a -f /etc/defaultdomain ]
  then
      . /etc/default/nis
	  deb-systemd-invoke disable nis || true
	  rm -f /etc/init.d/nis
	  update-rc.d nis remove || true
	  # if systemd is in use disable /etc/default/nis use...
	  [ -d /run/systemd/system ] && \
	  sed -i -e 's,^NISSERVER=.*,NISSERVER=false,' \
		     -e 's,^NISCLIENT=.*,NISCLIENT=false,' /etc/default/nis 
      case "$NISSERVER" in
          master)
             deb-systemd-invoke enable ypserv.service
             deb-systemd-invoke enable yppasswdd.service
             deb-systemd-invoke enable ypxfrd.service
             deb-systemd-invoke restart ypserv.service || true
             deb-systemd-invoke restart yppasswdd.service || true
             deb-systemd-invoke restart ypxfrd.service || true
             ;;
          slave)
             deb-systemd-invoke enable ypserv.service
             deb-systemd-invoke enable ypxfr_1perday.timer
             deb-systemd-invoke enable ypxfr_1perhour.timer
             deb-systemd-invoke enable ypxfr_2perday.timer
             deb-systemd-invoke restart ypserv.service || true
             deb-systemd-invoke restart ypxfr_1perday.timer || true
             deb-systemd-invoke restart ypxfr_1perhour.timer || true
             deb-systemd-invoke restart ypxfr_2perday.timer || true
             ;;
          false)
             ;;
          *)
             ;;
      esac
	  # start client _after_ server else weird things could happen...
      case "$NISCLIENT" in
          true)
              deb-systemd-invoke enable ypbind.service
              deb-systemd-invoke restart ypbind.service || true
              ;;
          false)
              ;;
          *)
              ;;
      esac
  fi
}

case "$1" in
    configure)
        PREV_VER="$2"
		if [ ! -z "$PREV_VER" ]
		then
			if dpkg --compare-versions "$PREV_VER" lt '4~'
        	then
            	upgrade_old
        	fi
		fi
	  	rm -f /etc/init.d/nis
        ;;
    *)
        ;;
esac

#DEBHELPER#
