# Common shell routine used by im-config
# (C) 2026 Osamu Aoki <osamu@debian.org>, GPL-2+
# vim: set sts=4 sw=4 expandtab:
#
#############################################################
# Common logging functions `
#############################################################
IM_CONFIG_DEFAULT=/etc/default/im-config
# logger_info -- require systemd installed
if which -s systemd-cat ; then
    LOGGER='systemd-cat -p 6 -t "im-config" echo'
elif which -s logger ; then
    LOGGER='logger -p local0.info -t "im-config" echo'
else
    LOGGER='>&2 echo'
fi

logger_info() {
    eval $LOGGER \"$1\"
}

logger_debug() {
    if [ -n "$IM_CONFIG_VERBOSE" ]; then
        eval $LOGGER \"$1\"
    fi
}

# Reduce risk of random script executions
set_val () {
    MATCH="^$1=[\"']?[-a-zA-Z:_,][-a-zA-Z:_,]*.[\"']?\$"
    eval "$(grep -e "$MATCH" $IM_CONFIG_DEFAULT | head -1)"
    logger_debug "Set $(grep -e "$MATCH" $IM_CONFIG_DEFAULT | head -1)"
}

# parse /etc/default/im-config
logger_debug "Parse $IM_CONFIG_DEFAULT"
if [ -r $IM_CONFIG_DEFAULT ]; then
    set_val IM_CONFIG_DEFAULT_MODE
    set_val CJKV_DEFAULT_DESKTOP
    set_val CJKV_LOCALES
    set_val IM_CONFIG_PREFERRED_RULE
    set_val DESKTOP_SETUP_IBUS
    set_val IM_CONFIG_SETMODE
    set_val IM_CONFIG_VERBOSE
fi

