#!/bin/sh

set -eu

dm=$(puavo-conf puavo.xsessions.display_manager)

case "$dm" in
  gdm)
    default_dm='/usr/sbin/gdm3'
    dm_service='/usr/lib/systemd/system/gdm3.service'
    ;;
  lightdm)
    default_dm='/usr/sbin/lightdm'
    dm_service='/usr/lib/systemd/system/lightdm.service'
    ;;
  puavo-darkdm|puavo-darkdm-*)
    default_dm='/usr/lib/puavo-ltsp-client/darkdm_on_tty'
    dm_service='/usr/lib/systemd/system/puavo-darkdm.service'
    ;;
  tty)
    default_dm=''
    dm_service=''
    ;;
  *)
    echo "Unsupported display manager ${dm}" >&2
    exit 1
    ;;
esac

if [ -n "$default_dm" ]; then
  echo "$default_dm" > /etc/X11/default-display-manager
else
  rm -f /etc/X11/default-display-manager
fi

if [ -n "$dm_service" ]; then
  ln -fns "$dm_service" /etc/systemd/system/display-manager.service
else
  rm -f /etc/systemd/system/display-manager.service
fi
