#!/bin/bash
#
# Initial script for Live operating system
# This script are launching before starting init from linux-live script.
# Current dir allways must be set to root (/)
# All system path must be relative, except initrd dirs

ENABLED=yes
[ "$ENABLED" != "yes" ] && exit 0
DEBUGMODE=no

PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin

unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=.
SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
debug_mode "$0" "$@"

SYSCONF="${ROOTFS}/${SYSCONF}"
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null

    if [[ "${AUTOLOGINUSER}" == "none" ]]; then 
	unset AUTOLOGINUSER
	[[ -f ${ROOTFS}/etc/X11/gdm/custom.conf ]] && sed -i "s/^AutomaticLogin=.*//g" ${ROOTFS}/etc/X11/gdm/custom.conf
	[[ -f ${ROOTFS}/usr/share/ublinux/kde4/share/config/kdm/kdmrc ]] && sed -i "s/^AutoLoginUser=.*//g" ${ROOTFS}/usr/share/ublinux/kde4/share/config/kdm/kdmrc
	[[ -f ${ROOTFS}/etc/sddm.conf ]] && sed -i "s/^User=.*//g" ${ROOTFS}/etc/sddm.conf
	[[ -f ${ROOTFS}/etc/slim.conf ]] && sed -i "s/^default_user[[:space:]].*//g" ${ROOTFS}/etc/slim.conf
	[[ -f ${ROOTFS}/etc/X11/slim/slim.conf ]] && sed -i "s/^default_user[[:space:]].*//g" ${ROOTFS}/etc/X11/slim/slim.conf
	[[ -f ${ROOTFS}/etc/lxdm/lxdm.conf ]] && sed -i "s/^autologin=.*//g" ${ROOTFS}/etc/lxdm/lxdm.conf
	[[ -f ${ROOTFS}/etc/lightdm/lightdm.conf ]] && sed -i "s/^autologin-user=.*/#autologin-user=/g" ${ROOTFS}/etc/lightdm/lightdm.conf 
    else
	if [[ -z "${DISPLAYMANAGER_DEFAULTUSER}" ]]; then
	    [[ -z "$(cmdline_value autologin)" ]] || AUTOLOGINUSER=$(cmdline_value autologin)
	    [[ -z "${AUTOLOGINUSER}" ]] && AUTOLOGINUSER=$(echo "${NEEDEDUSERS}" | awk -F: '{print $1}')
	    [[ -z "${AUTOLOGINUSER}" ]] && AUTOLOGINUSER=$(grep :${ADMUID}:${ADMUID}: ${ROOTFS}/etc/passwd | awk -F: '{print $1}')
	fi
	[[ -f ${ROOTFS}/etc/X11/gdm/custom.conf ]] && sed -i "s/^AutomaticLogin=.*/AutomaticLogin=${AUTOLOGINUSER}/g" ${ROOTFS}/etc/X11/gdm/custom.conf
	[[ -f ${ROOTFS}/usr/share/ublinux/kde4/share/config/kdm/kdmrc ]] && sed -i "s/^AutoLoginUser=.*/AutoLoginUser=${AUTOLOGINUSER}/g" ${ROOTFS}/usr/share/ublinux/kde4/share/config/kdm/kdmrc
	[[ -f ${ROOTFS}/etc/sddm.conf ]] && sed -i "s/^User=.*/User=${AUTOLOGINUSER}/g" ${ROOTFS}/etc/sddm.conf
	[[ -f ${ROOTFS}/etc/slim.conf ]] && sed -i "s/^default_user[[:space:]].*/default_user        ${AUTOLOGINUSER}/g" ${ROOTFS}/etc/slim.conf
	[[ -f ${ROOTFS}/etc/X11/slim/slim.conf ]] && sed -i "s/^default_user[[:space:]].*/default_user        ${AUTOLOGINUSER}/g" ${ROOTFS}/etc/X11/slim/slim.conf
	[[ -f ${ROOTFS}/etc/lxdm/lxdm.conf ]] && sed -i "s/^#autologin=.*/autologin=${AUTOLOGINUSER}/g" ${ROOTFS}/etc/lxdm/lxdm.conf
	if [[ -f ${ROOTFS}/etc/lightdm/lightdm.conf ]]; then
	    if grep -q "^#autologin-user=.*" ${ROOTFS}/etc/lightdm/lightdm.conf 2>/dev/null; then
		sed -i "s/^#autologin-user=.*/autologin-user=${AUTOLOGINUSER}/g" ${ROOTFS}/etc/lightdm/lightdm.conf 
	    else
		sed -i "/\[Seat:\*\]/aautologin-user=${AUTOLOGINUSER}" ${ROOTFS}/etc/lightdm/lightdm.conf 
	    fi
#       	sed -i "s/^#autologin-guest=.*/autologin-guest=false/" ${ROOTFS}/etc/lightdm/lightdm.conf 
#       	sed -i "s/^#autologin-user-timeout=.*/autologin-user-timeout=0/" ${ROOTFS}/etc/lightdm/lightdm.conf 
	    AUTOLOGIN_IDGROUP=$(grep -i "g\sautologin\s*[[:digit:]]\s*" ${ROOTFS}/usr/share/ublinux-sysusers/*.sysusers | cut -d: -f2 | xargs | cut -d " " -f3 | head -1)
	    [[ -n ${AUTOLOGIN_IDGROUP} ]] && ARG_AUTOLOGIN_IDGROUP="-g ${AUTOLOGIN_IDGROUP}"
	    if [[ -n ${ROOTFS} ]]; then
		chroot . ${ROOTFS}/usr/bin/groupadd -f ${ARG_AUTOLOGIN_IDGROUP} autologin >/dev/null 2>&1
		chroot . ${ROOTFS}/usr/bin/gpasswd -a ${AUTOLOGINUSER} autologin >/dev/null 2>&1
	    else
		/usr/bin/groupadd -f ${ARG_AUTOLOGIN_IDGROUP} autologin >/dev/null 2>&1
		/usr/bin/gpasswd -a ${AUTOLOGINUSER} autologin >/dev/null 2>&1
	    fi
	fi
    fi

