#!/bin/bash

set -e

[ -z "$1" ] && exit 0

CWD=$(dirname $(realpath ${0}) )
USER_NAME=${1}
PREFIX=${2}

add_autologin_systemd()
{
    CS_CONF=${PREFIX}/etc/default/console-setup
    [ -e ${CS_CONF} ] && sed -i -e 's|ACTIVE_CONSOLES=.*|ACTIVE_CONSOLES="/dev/tty1"|' ${CS_CONF} || true

    [ -e ${CWD}/service ] || return
    
    mkdir -p ${PREFIX}/etc/systemd/system/getty.target.wants
    for n in 1; do
        mkdir -p ${PREFIX}/etc/systemd/system/getty@tty$n.service.d
        sed "s/@USER_NAME@/${USER_NAME}/" ${CWD}/service > ${PREFIX}/etc/systemd/system/getty@tty$n.service.d/override.conf
        ln -sf /lib/systemd/system/getty@.service ${PREFIX}/etc/systemd/system/getty.target.wants/getty@tty$n.service
    done
    
    echo "NAutoVTs=1" >> ${PREFIX}/etc/systemd/logind.conf
    echo "ReserveVT=1" >> ${PREFIX}/etc/systemd/logind.conf
}


add_xinit()
{
    [ -e ${CWD}/xinitrc ] || return
    mkdir -p ${PREFIX}/home/${USER_NAME}
    #install -o${USER_NAME} -m755 $CWD/xinitrc ${PREFIX}/home/${USER_NAME}/.xinitrc
        local FILE=${PREFIX}/home/${USER_NAME}/.xinitrc
    rm -f ${FILE}
    ln -sf /usr/share/marinara-base-kiosk/xinitrc ${FILE}
    chown ${USER_NAME} ${FILE}

}

add_bashrc()
{
    [ -e ${CWD}/bashrc ] || return
    mkdir -p ${PREFIX}/home/${USER_NAME}
    #if [ -e ${PREFIX}/home/${USER_NAME}/.bashrc ]; then
    #    cat ${CWD}/bashrc >> ${PREFIX}/home/${USER_NAME}/.bashrc
    #else
    #    install -o${USER_NAME} -m755 ${CWD}/bashrc ${PREFIX}/home/${USER_NAME}/.bashrc
    #fi
    local FILE=${PREFIX}/home/${USER_NAME}/.bashrc
    rm -f ${FILE}
    ln -sf /usr/share/marinara-base-kiosk/bashrc ${FILE}
    chown ${USER_NAME} ${FILE}
}

add_skel()
{
    local root=${PREFIX}/opt/ssgnavigation/marinara
    mkdir -p ${root}/etc
    mkdir -p ${root}/var
    find $root -type d -exec chmod 777 {} ';'
    ln -sf /media $root/mnt
}

setup_group()
{
    # если нет префикса, значит мы в сhroot`е
    [ -z "$PREFIX" ] && usermod -a -G dialout ${USER_NAME}
    [ -z "$PREFIX" ] && usermod -a -G video ${USER_NAME}
}

setup_powerbtn()
{
    echo "HandlePowerKey=ignore" >> ${PREFIX}/etc/systemd/logind.conf
}

setup_ntp()
{
    # если нет префикса, значит мы в сhroot`е
     [ -z "$PREFIX" ] && systemctl disable systemd-timesyncd
}

setup_guest()
{
    
    # если нет префикса, значит мы в сhroot`е
    [ -z "$PREFIX" ] || return
    
    local GUEST_LOGIN='guest'
    local GUEST_PASSWORD='ssg'
    local GUEST_UID='2000'

    echo "${GUEST_LOGIN}:x:${GUEST_UID}:65534::/tmp:/bin/bash" >> /etc/passwd
    echo -e "${GUEST_PASSWORD}\n${GUEST_PASSWORD}\n" | passwd ${GUEST_LOGIN}
}


add_autologin_systemd
add_xinit
add_bashrc
add_skel
setup_powerbtn
setup_group
setup_ntp
setup_guest
