#!/bin/bash

. /usr/lib/eole/ihm.sh

USER="genconfig"
# Never rename ${USER_HOME} to ${HOME} or this script will fail ;-)
USER_HOME=$(getent passwd ${USER} | awk -F':' '{print $6}')
XFILE="${USER_HOME}/.Xauthority"
BROWSER="chromium-browser"
SSH_BROWSER_OPT="--window-size=\"1024,768\""
APP_BROWSER_OPT="--start-maximize"
SERVER="127.0.0.1:5000"
APP_URL="http://$SERVER/genconfig/?application"
BASHRC="${USER_HOME}/.bashrc"
PREFS_DIR="${USER_HOME}/.local"
#export XDG_DOWNLOAD_DIR="$USER_HOME"

if [ -f $BASHRC ]
then
    sed -i 's/^HISTSIZE/#HISTSIZE/g' $BASHRC
    sed -i 's/^HISTFILESIZE/#HISTFILESIZE/g' $BASHRC
fi

mkdir -p $PREFS_DIR
chown -R $USER: $PREFS_DIR

if [ -f $XFILE ];then
    #FIXME: works only with SSH connexions
    if pgrep -f ${BROWSER} >/dev/null ;then
        EchoRouge "Quelqu'un utilise gen_config en ce moment, il est impossible de lancer gen_config plusieurs fois en même temps."
        exit 1
    else
        #echo "Deleting old $XFILE"
        echo "Suppression de l'ancien $XFILE"
        rm $XFILE
    fi
fi

tcpcheck 1 $SERVER >/dev/null 2>&1
if [ "$?" = "1" ]; then
    EchoRouge "gen_config n'est pas joignable, veuillez consulter les journaux d'eoleflask pour en savoir plus :"
    EchoRouge "/var/log/eoleflask/eolegenconfig.log"
    EchoRouge "et relancer le service"
    exit 1
fi

if [ -n "$SSH_CLIENT" -a -n "$DISPLAY" ];then
    # ${BROWSER} on backend over SSH
    touch $XFILE
    chown $USER: $XFILE
    su - $USER -c "rm -rf ${USER_HOME}/.config/chromium"
    sux - $USER ${BROWSER} ${SSH_BROWSER_OPT} --app="${APP_URL}" #> /dev/null
    su - $USER -c "rm -rf ${USER_HOME}/.config/chromium"
elif [ -n "$SSH_CLIENT" ]; then
    #echo 'Missing DISPLAY. Enable SSH option "ForwardX11".'
    echo "DISPLAY manquant. Activer l'option SSH: 'ForwardX11'"
    exit 1
else
    #FIXME
    touch $XFILE
    chown $USER: $XFILE
    # Si lancé depuis X
    if [ -n "$DISPLAY" ]
    then
        rm -rf ${USER_HOME}/.config/chromium
        ${BROWSER} ${APP_BROWSER_OPT} --app="${APP_URL}"
        rm -rf ${USER_HOME}/.config/chromium
        exit
    fi

    # Mode console
    if [ -e /tmp/.X0-lock ]
    then
        [ -e /tmp/.X1-lock ] && EchoRouge "Trop de serveur X demarre" && exit 1
        OPTXINIT="-- :1"
    fi
    su - $USER -c "rm -rf ${USER_HOME}/.config/chromium"
    TMPF=$(mktemp -p /tmp)
    TMPF2=$(mktemp -p /tmp)
    /bin/echo -e "/usr/bin/numlockx;\n/usr/bin/matchbox-window-manager -use_titlebar no -use_desktop_mode decorated &\nsu - $USER -c '${BROWSER} ${APP_BROWSER_OPT} ${APP_URL}' > $TMPF2 2>&1 " >$TMPF
    /bin/echo -e "/usr/bin/numlockx;\n/usr/bin/matchbox-window-manager -use_titlebar no -use_desktop_mode decorated &\nsu - $USER -c '${BROWSER} ${APP_BROWSER_OPT} --app=\"${APP_URL}\"' > $TMPF2 2>&1 " >$TMPF
    chmod a+x $TMPF
    xinit $TMPF $OPTXINIT >/dev/null 2>&1
    cat $TMPF2
    rm $TMPF $TMPF2
    su - $USER -c "rm -rf ${USER_HOME}/.config/chromium"
fi

#Removing the .Xauthority file
rm -f $XFILE
