#!/bin/sh -e
# Copyright (C) 2026 Osamu Aoki <osamu@debian.org>
# GNU General Public License version 2 or later.
#
# /etc/X11/Xsession.d/70im-config_launch (caller)
# caller exports: HOME IM_CONFIG_LAUNCH IM_CONFIG_ENVIROMENT_KEY

IM_CONFIG_VERBOSE="${IM_CONFIG_VERBOSE:-1}"
IM_CONFIG_USR_BASE="${IM_CONFIG_USR_BASE:-/usr/share/im-config}"
# shellcheck disable=SC1091
. "${IM_CONFIG_USR_BASE}/logger_function"
logger_info "I: @im-launch UID=$(id -u) PID=$$ PPID=$PPID"
logger_debug "D:   @im-launch: GTK_IM_MODULE='$GTK_IM_MODULE' QT_IM_MODULE='$QT_IM_MODULE' QT_IM_MODULES='$QT_IM_MODULES' CLUTTER_IM_MODULE='$CLUTTER_IM_MODULE' SDL_IM_MODULE='$SDL_IM_MODULE' XMODIFIERS='$XMODIFIERS'"
# check unchanged
if [ -n "$IM_CONFIG_LAUNCH" ] && [ -r "$IM_CONFIG_LAUNCH" ]; then
  if [ "$IM_CONFIG_ENVIROMENT_KEY" = "$GTK_IM_MODULE:$QT_IM_MODULE:$XMODIFIERS:$CLUTTER_IM_MODULE:$SDL_IM_MODULE" ]; then
    logger_debug "D:   @im-launch: Start daemon at /etc/X11/Xsession.d/99x11-common_start (variables untouched from /etc/X11/Xsession.d/70im-config_launch)"
    . "$IM_CONFIG_LAUNCH"
  else
    logger_info "W:   @im-launch: Don't start daemon at /etc/X11/Xsession.d/99x11-common_start (variables changed from /etc/X11/Xsession.d/70im-config_launch)"
  fi
else
  logger_info "W:   @im-launch: Don't start daemon since IM_CONFIG_LAUNCH='$IM_CONFIG_LAUNCH' is not available"
fi

if [ -n "$1" ]; then
  logger_debug "D:   @im-launch: EXIT @ im-launch with 'exec $*'"
  exec "$@"
fi
logger_debug "D:   @im-launch: EXIT @ im-launch without 'exec'"
