#!/bin/sh -e

exec 2>&1

echo "starting ${PWD##*/}"
#NAME="${PWD##*@:-default}"
USERNAME="${PWD##*@}"
echo "name is $USERNAME"

[ "$USERNAME" = 'default' ] && exit 1
[ -d "/home/$USERNAME" ] || exit 1
# create dir for runsvdir in home
SVDIR="/home/$USERNAME/.service"
CURRENT="/home/$USERNAME/.runit/runsvdir/current"

chpst -u "$USERNAME" mkdir -p "/home/$USERNAME/.runit/sv"
chpst -u "$USERNAME" mkdir -p "/home/$USERNAME/.runit/runsvdir/default" #X11/wayland session
chpst -u "$USERNAME" mkdir -p "/home/$USERNAME/.runit/runsvdir/headless"
chpst -u "$USERNAME" mkdir -p "/home/$USERNAME/.runit/supervise"
chpst -u "$USERNAME" mkdir -p "/home/$USERNAME/.runit/log"

if [ ! -d "$CURRENT" ]; then
	chpst -u "$USERNAME" ln -s "/home/$USERNAME/.runit/runsvdir/default"  "$CURRENT"
fi
if [ ! -d "$SVDIR" ]; then
	chpst -u "$USERNAME" ln -s "$CURRENT"  "$SVDIR"
fi

groups="$(id -Gn "$USERNAME" | tr ' ' ':')"

#setup env in evndir for chpst
mkdir -p "${PWD}/xenv"
#set svdir for user
echo "$SVDIR" > "${PWD}/env/SVDIR"
echo "$USERNAME" > "${PWD}/env/USER"
echo "/home/$USERNAME" > "${PWD}/env/HOME"
echo "/home/$USERNAME/.config" >  "${PWD}/env/XDG_CONFIG_HOME"
echo "/home/$USERNAME/.cache" >  "${PWD}/env/XDG_CACHE_HOME"
echo "/home/$USERNAME/.local/share" >  "${PWD}/env/XDG_DATA_HOME"
#XDG_DATA_DIRS=/home/$USERNAME/.local/share:/usr/local/share:/usr/share
#XDG_CONFIG_DIRS=/etc:/etc/xdg:/usr/share
#XAUTHORITY? --> this is X11 only

exec chpst -u "$USERNAME:$groups" -e "${PWD}/env" runsvdir -P "$SVDIR"
