# Generate dconf profile based on locale, Puavo host type and Puavo configurations.
#

puavo_session_dir="$(mktemp -d /tmp/puavo-desktopsession-${USER}.XXXXXXX || return 1)"
puavo_dconf_profile_path="${puavo_session_dir}/dconf_profile"

{
  echo "user-db:user"

  if [ -n "$LANGUAGE" ]; then
    locale_dconf_db="locale-$LANGUAGE"
  else
    locale_dconf_db='locale-en'
  fi

  PUAVO_HOSTTYPE=$(cat /etc/puavo/hosttype)
  if [ "$PUAVO_HOSTTYPE" = 'laptop' ]; then
    echo "system-db:${locale_dconf_db}-laptop"
    echo "system-db:laptop"
  else
    echo "system-db:${locale_dconf_db}"
  fi

  if [ "$(puavo-conf puavo.pm.suspend.enabled)" = 'false' ]; then
    echo "system-db:disable_lidsuspend"
    echo "system-db:disable_suspend"
  elif [ "$(puavo-conf puavo.pm.lidsuspend.enabled)" = 'false' ]; then
    echo "system-db:disable_lidsuspend"
  fi

  if [ "$(puavo-conf puavo.onscreenkeyboard.enabled)" = 'true' ]; then
    echo "system-db:nokeyboard"
  else
    puavo_screenkeyboardcontroller_mode="$(puavo-conf puavo.screenkeyboardcontroller.mode)"
    case "${puavo_screenkeyboardcontroller_mode}" in
      auto_hide|do_nothing|force_hide)
        echo "system-db:screenkeyboardcontroller_${puavo_screenkeyboardcontroller_mode}"
        ;;
      *)
        ;;
    esac
  fi

  if [ "$(puavo-conf puavo.xsessions.default)" = 'puavo-ers' ]; then
    echo "system-db:puavo-ers"
  fi

  echo "system-db:puavo-keyboard"

  if [ -r /etc/dconf/db/puavo-desktopbackground ]; then
    echo "system-db:puavo-desktopbackground"
  fi

  if [ -r /etc/dconf/db/puavo-conf ]; then
    echo "system-db:puavo-conf"
  fi

  if [ -r "/etc/dconf/db/${DESKTOP_SESSION}" ]; then
    echo "system-db:${DESKTOP_SESSION}"
  fi

  if [ -n "${EXAMMODE_SESSION:-}" ]; then
    echo "system-db:puavo-exammode"
    if [ "$EXAMMODE_SESSION" = 'abitti-2-exam' ]; then
      echo "system-db:puavo-exammode-strict"
    fi
    if [ "$(puavo-conf puavo.exammode.developer-mode.enabled)" = 'true' ]; then
      echo "system-db:puavo-exammode-devel"
    fi
  fi
} > $puavo_dconf_profile_path || return 1

DCONF_PROFILE=$puavo_dconf_profile_path

export DCONF_PROFILE
