#!/bin/sh

set -e

# create traintastic group if it doesn't exist:
if ! getent group traintastic >/dev/null; then
  addgroup --system traintastic
fi

# create traintastic user if it doesn't exist:
if ! getent passwd traintastic >/dev/null; then
  adduser --system \
          --ingroup traintastic \
          --home /var/opt/traintastic \
          --no-create-home \
          --gecos "traintastic-server daemon" \
          traintastic
  usermod -a -G dialout,plugdev traintastic
fi

if [ ! -e /var/opt/traintastic ]; then
  mkdir -p /var/opt/traintastic
  chown traintastic:traintastic /var/opt/traintastic
fi

# Based on output by dh_installsystemd/13.6ubuntu1 (not auto generated due to CPack being used)
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	# This will only remove masks created by d-s-h on package removal.
	deb-systemd-helper unmask 'traintastic-server.service' >/dev/null || true

	# was-enabled defaults to true, so new installations run enable.
	if deb-systemd-helper --quiet was-enabled 'traintastic-server.service'; then
		# Enables the unit on first installation, creates new
		# symlinks on upgrades if the unit file has changed.
		deb-systemd-helper enable 'traintastic-server.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 'traintastic-server.service' >/dev/null || true
	fi
fi

if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	if [ -d /run/systemd/system ]; then
		systemctl --system daemon-reload >/dev/null || true
		if [ -n "$2" ]; then
			_dh_action=restart
		else
			_dh_action=start
		fi
		deb-systemd-invoke $_dh_action 'traintastic-server.service' >/dev/null || true
	fi
fi
