#!/bin/zsh --login

set -u

while :; do
  for script in $(run-parts --list $HOME/.xsession.d); do
    echo I: sourcing ${script:t}... >&2
    . $script
    echo I: done sourcing ${script:t}... >&2
  done

  [ -e $HOME/.xsession-exit ] && break

  echo "I: restarting xsession (touch $HOME/.xsession-exit to exit)..." >&2
done

rm -f $HOME/.xsession-exit

exit 0