#!/bin/sh
# postinst script for s6-rc-service-turnstiled.
#
# 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 https://www.debian.org/doc/debian-policy/ or
# the debian-policy package.

SERVICE1="turnstiled"
SERVICE2="service2"

USER_SERVICE1="user-service1"
USER_SERVICE2="user-service2"

case "$1" in
    configure)
    
    ##### GLOBAL SERVICES #####
    # Adding service to startup bundle to enable it when recompiling
	if [ -e /etc/s6-rc/sv/$SERVICE1 ]; then
		touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE1
	fi
	if [ -e /etc/s6-rc/sv/$SERVICE1-srv ]; then
		touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE1-srv
	fi
	if [ -e /etc/s6-rc/sv/$SERVICE1-log ]; then
		touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE1-log
	fi
	if [ -e /etc/s6-rc/sv/$SERVICE2 ]; then
		touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE2
	fi
	if [ -e /etc/s6-rc/sv/$SERVICE2-srv ]; then
		touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE2-srv
	fi
	if [ -e /etc/s6-rc/sv/$SERVICE2-log ]; then
		touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE2-log
	fi

	if [ -x /usr/bin/s6-db-reload ] || [ -x /usr/local/bin/s6-db-reload ] ; then
		echo "recompiling system database"
		sleep 1
		s6-db-reload
	else
		echo "$SERVICE1 service files have been installed
		s6 database needs to be manually recompiled in order to activate"
	fi	
	
	##### STOP HERE IF antiX BUILD DETECTED #####
	if [ "$(stat -c %d/%i /)" != "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ]; then
			echo "A chroot environment has been detected - Not proceeding with postinst"
			exit 0
	fi
	
	##### USER SERVICES #####
	getent passwd $(basename -a /home/*) | awk -F: '{print $1}' | while read user; do 
		
		if [ -e /etc/s6-rc/usersv/$USER_SERVICE1 ]; then
			runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE1
		fi
		if [ -e /etc/s6-rc/usersv/$USER_SERVICE1-srv ]; then
			runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE1-srv
		fi
		if [ -e /etc/s6-rc/usersv/$USER_SERVICE1-log ]; then
			runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE1-log
		fi
		if [ -e /etc/s6-rc/usersv/$USER_SERVICE2 ]; then
			runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE2
		fi
		if [ -e /etc/s6-rc/usersv/$USER_SERVICE2-srv ]; then
			runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE2-srv
		fi
		if [ -e /etc/s6-rc/usersv/$USER_SERVICE2-log ]; then
			runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE2-log
		fi

		if [ -x /usr/bin/s6-db-reload ] || [ -x /usr/local/bin/s6-db-reload ] ; then
			echo "recompiling user database for $user"
			sleep 1
			runuser -u $user -- s6-db-reload -u
		fi
		done	
	;;

    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.

#DEBHELPER#

exit 0
