#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME="cinnamon-cheatcodes"

if [ -r /etc/default/distro ]; then
    . /etc/default/distro
fi

. /lib/lsb/init-functions

. /lib/init/fll

if [ -r /etc/default/fll-locales ]; then
    . /etc/default/fll-locales
fi

FLL_LIVE_USER_HOME=$(getent passwd ${FLL_LIVE_USER} | cut -d \: -f 6)

###
# cheatcode handling
###
for param in $(cat /proc/cmdline); do
    case "${param}" in
        flldebug=*)
            if [ "${param#flldebug=}" = "${NAME}" ] || [ "${param#flldebug=}" = "all" ]; then
                fll_redirect
            fi
            ;;
        nointro)
            NOINTRO="nointro"
            ;;
        cinnamon)
            CINNAMON_SESSION_TYPE="cinnamon2d"
            ;;
    esac
done

change_cinnamon_session() {
    if [ -n "${CINNAMON_SESSION_TYPE}" ] ; then
        if [ ! -d /etc/glib-2.0/schemas ]; then
            mkdir -p /etc/glib-2.0/schemas
        fi

        mount --bind /usr/share/glib-2.0/schemas /etc/glib-2.0/schemas
        sed -i "s@session-name=.*@session-name='${CINNAMON_SESSION_TYPE}'@" /etc/glib-2.0/schemas/91_org.gnome.session.gschema.override

        # we rebuild schema
        glib-compile-schemas /etc/glib-2.0/schemas
        umount /etc/glib-2.0/schemas
    fi
}

no_intro() {
    if [ -z "${NOINTRO}"  ] ; then
        [ ! -f ${FLL_LIVE_USER_HOME}/.config/autostart/${FLL_DISTRO_NAME}.desktop ] && sudo -u ${FLL_LIVE_USER} ln -sf "${FLL_LIVE_USER_HOME}/Desktop/${FLL_DISTRO_NAME}.desktop" \
            "${FLL_LIVE_USER_HOME}/.config/autostart/"
    elif [ -e "${FLL_LIVE_USER_HOME}/.config/autostart/${FLL_DISTRO_NAME}.desktop" ]; then
        # toram + persistency
        rm -f "${FLL_LIVE_USER_HOME}/.config/autostart/${FLL_DISTRO_NAME}.desktop"
    fi
}

do_start() {
    if [ -f ${FLL_LIVE_USER_HOME}/Desktop/${FLL_DISTRO_NAME}.desktop  ]; then
        no_intro
    fi
    # change_cinnamon_session
}

case "${1}" in
    start)
        log_daemon_msg "${NAME}"
        do_start
        log_end_msg "${?}"
        ;;
    stop)
        ;;
    restart|force-reload)
        echo "Error: argument '${1}' not supported" >&2
        exit 3
        ;;
    *)
        echo "Usage: ${NAME} {start|stop}" >&2
        exit 3
        ;;
esac
