#!/bin/sh

set -eu

case "$(puavo-conf puavo.xsessions.default)" in
  puavo-ers)
    session_manager='/usr/lib/puavo-desktop/desktop-session'

    ers_home='/home/puavo-ers'
    ers_uid='992'
    ers_user='puavo-ers'

    if ! passwd -qS "$ers_user" >/dev/null 2>&1; then
      useradd --system --create-home --home-dir "$ers_home"    \
              --comment Puavo-ERS --groups docker --user-group \
              --shell /bin/bash --uid "$ers_uid" "$ers_user"
    fi
    ;;

  puavo-infotv)
    session_manager='/usr/lib/puavo-ltsp-client/infotv-session'

    infotv_home='/home/puavo-infotv'
    infotv_uid='998'
    infotv_user='puavo-infotv'

    if ! passwd -qS "$infotv_user" >/dev/null 2>&1; then
      useradd --system --create-home --home-dir "$infotv_home"      \
              --comment Puavo-InfoTV --user-group --shell /bin/bash \
              --uid "$infotv_uid" "$infotv_user"
    fi
    ;;

  puavo-usb-factory)
    session_manager='/usr/lib/puavo-ltsp-client/usb-factory-session'

    usb_factory_user='puavo-usb-factory'
    usb_factory_home="/home/${usb_factory_user}"
    usb_factory_uid='997'

    if ! passwd -qS "$usb_factory_user" >/dev/null 2>&1; then
      # XXX using --groups disk might be a risk
      useradd --system --create-home --home-dir "$usb_factory_home"     \
              --comment "Puavo USB Factory" --groups disk --user-group \
              --shell /bin/bash --uid "$usb_factory_uid" "$usb_factory_user"
    fi
    ;;

  *)
    session_manager='/usr/bin/gnome-session'
    ;;
esac

ln -fns "$session_manager" /etc/alternatives/x-session-manager

exit 0
