#!/bin/sh
# postinst script for s6-rc-service-slimski.
#
# See: dh_installdeb(1).

set -e

# SYSTEM SERVICES - To enable a system service after installation add to array below
SERVICES="
slimski
service2
service3
service4
"

# USER SERVICES - To enable a user service after installation add to array below
USER_SERVICES="
user-service1
user-service2
user-service3
user-service4
"

case "$1" in
    configure)

	# Temorarily modifying Internal Field Separator (IFS) for POSIX shell to emulate array newline function
	default_ifs=$IFS
	IFS='
	'
    
    # Adding installed system services to the startup bundle
    for SERVICE in $SERVICES ; do
	[ -e /etc/s6-rc/sv/$SERVICE ] && touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE && echo "Enabled system service: $SERVICE"
	[ -e /etc/s6-rc/sv/$SERVICE-srv ] && touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE-srv && echo "Enabled system service: $SERVICE-srv"
	[ -e /etc/s6-rc/sv/$SERVICE-log ] && touch /etc/s6-rc/adminsv/enabled-services/contents.d/$SERVICE-log && echo "Enabled system service: $SERVICE-log"
	done
	# Recompiling system database
	[ -x /usr/bin/s6-db-reload ] && echo "recompiling system database" && sleep 1 && s6-db-reload
	
	##### STOP HERE IF antiX BUILD DETECTED #####
	# Users do no exist during antiX build - therefore processing them leads to failures
	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
	
	# Enabling installed user services for each user with a home directory
	getent passwd $(basename -a /home/*) | awk -F: '{print $1}' | while read user; do 
		for USER_SERVICE in $USER_SERVICES ; do
		[ -e /etc/s6-rc/usersv/$USER_SERVICE ] && runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE && echo "Enabled service: $USER_SERVICE for user: $user"
		[ -e /etc/s6-rc/usersv/$USER_SERVICE-srv ] && runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE-srv && echo "Enabled service: $USER_SERVICE-srv for user: $user"
		[ -e /etc/s6-rc/usersv/$USER_SERVICE-log ] && runuser -u $user -- touch $(/usr/lib/execline/bin/homeof $user)/.s6-rc/sv/enabled-services/contents.d/$USER_SERVICE-log && echo "Enabled service: $USER_SERVICE-log for user: $user"
		done
		# Recompiling database for each user
		[ -x /usr/bin/s6-db-reload ] && echo "recompiling user database for user: $user" && sleep 1 && runuser -u $user -- s6-db-reload -u
		done
		
		# Restoring default Internal Field Separator (IFS) for POSIX shell
		IFS=$default_ifs
	;;

    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
