#!/bin/sh
# postinst script for #PACKAGE#
#
# see: dh_installdeb(1)

set -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>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)
      # if prelink is installed, add a blacklist rule for CodeMeterLin:
      PRELINK_CONF="/etc/prelink.conf"
      BLACKLIST_RULE="-b /usr/sbin/CodeMeterLin"
      if [ -f $PRELINK_CONF ] ; then
        grep -qE $PRELINK_CONF -e "^[[:space:]]*$BLACKLIST_RULE" || echo "$BLACKLIST_RULE" >> $PRELINK_CONF
      fi

      if [ "$2" ] && dpkg --compare-versions $2 lt 4.30; then
        # migrate data
        if [ ! -d /var/lib/CodeMeter/CmAct ] ; then
          mkdir -p /var/lib/CodeMeter/
          if [ -d /var/backups/CmAct ] ; then
            mv /var/backups/CmAct /var/lib/CodeMeter
          else
            mkdir /var/lib/CodeMeter/CmAct/
          fi
        fi
        
        if [ ! -d /var/lib/CodeMeter/Backup ] ; then
          mkdir -p /var/lib/CodeMeter/
          BACKDIR=/var/backups/CodeMeter
          if [ -f /etc/wibu/CodeMeter/Server.ini ] ; then
            BACKDIR=`sed -n 's/^Path=//p' /etc/wibu/CodeMeter/Server.ini`
          fi
          if [ -d "${BACKDIR}" ] ; then
            mv "${BACKDIR}" /var/lib/CodeMeter/Backup
          fi
          if [ ! -d "${BACKDIR}" ] ; then
            BACKDIR=/var/backups/CodeMeter
          fi
          mkdir -p /var/lib/CodeMeter/Backup
          if [ "${BACKDIR}" = "/var/backups/CodeMeter" ] ; then
            sed -i 's/^Path=.*/Path=\/var\/lib\/CodeMeter\/Backup/' /etc/wibu/CodeMeter/Server.ini
          fi
        fi
      fi
      /usr/sbin/CodeMeterLin -x || true
      
      # coldplug dongles
      if which udevadm >/dev/null; then
      	udevadm trigger -vn --subsystem-match=usb --attr-match=idVendor=064f | xargs -rn1 -d\\n udevadm trigger -b
      fi

      # we can't depend on dh_systemd/init-system-helpers
      systemd_unit=/lib/systemd/system/codemeter.service
      systemd_link=/etc/systemd/system/multi-user.target.wants/codemeter.service
      if ! [ -e "$systemd_link" ]; then
        mkdir -p "${systemd_link%/*}"
        ln -sT "$systemd_unit" "$systemd_link"
      fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

# Automatically added by dh_installinit
if [ -x "/etc/init.d/codemeter" ]; then
	if [ ! -e "/etc/init/codemeter.conf" ]; then
		update-rc.d codemeter defaults >/dev/null
	fi
	invoke-rc.d codemeter start || exit $?
fi
# End automatically added section
# Automatically added by dh_installudev
if [ "$1" = configure ]; then
	if [ -e "/etc/udev/rules.d/z60_codemeter.rules" ]; then
		echo "Preserving user changes to /etc/udev/rules.d/40-codemeter.rules ..."
		if [ -e "/etc/udev/rules.d/40-codemeter.rules" ]; then
			mv -f "/etc/udev/rules.d/40-codemeter.rules" "/etc/udev/rules.d/40-codemeter.rules.dpkg-new"
		fi
		mv -f "/etc/udev/rules.d/z60_codemeter.rules" "/etc/udev/rules.d/40-codemeter.rules"
	fi
fi
# End automatically added section
# Automatically added by dh_makeshlibs
if [ "$1" = "configure" ]; then
	ldconfig
fi
# End automatically added section


exit 0
