#!/bin/sh

#set -e

# initramfs-tools header

PREREQ=""

prereqs()
{
	echo "${PREREQ}"
}

case "${1}" in
	prereqs)
		prereqs
		exit 0
		;;
esac

# live-initramfs header

. /live.vars

if [ -n "${NOXAUTOLOGIN}" ] || [ -z "${USERNAME}" ]
then
	exit 0
fi

. /scripts/live-functions

log_begin_msg "Setting up automatic login"

# live-initramfs script

# chroot needed to handle symlinks correctly
if chroot /root [ -f /etc/gdm/gdm-cdd.conf ]
then
	GDMCONF=/etc/gdm/gdm-cdd.conf
else
	GDMCONF=/etc/gdm/gdm.conf
fi

# chroot needed to handle symlinks correctly
if chroot /root [ -f ${GDMCONF} ]
then
	# true hack ! -- nohar
	chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf

	# Configure GDM autologin
	chroot /root \
	sed -i -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \
	       -e "s/^AutomaticLogin=.*\$/AutomaticLogin=${USERNAME}/" \
	       -e "s/^TimedLoginEnable=.*\$/TimedLoginEnable=true/" \
	       -e "s/^TimedLogin=.*\$/TimedLogin=${USERNAME}/" \
	       -e "s/^TimedLoginDelay=.*\$/TimedLoginDelay=10/" \
	${GDMCONF}
elif [ -d /root/etc/gdm3 ]
then
	GDMCustomFile=/root/etc/gdm3/custom.conf
	AutologinParameters="AutomaticLoginEnable=true\n\
AutomaticLogin=$USERNAME\n\
TimedLoginEnable=true\n\
TimedLogin=$USERNAME\n\
TimedLoginDelay=10"

	# Prevent from updating if parameters already present (persistent usb
	# key)
	if ! $(grep -qs '\[daemon\]' $GDMCustomFile)
	then
		echo '[daemon]' >> $GDMCustomFile
	fi

	sed -i "s/\[daemon\]/\[daemon\]\n$AutologinParameters/" $GDMCustomFile
fi

if [ -d /root/etc/default/kdm.d/ ]
then
	if ! grep -qs "^AUTOLOGIN" /root/etc/default/kdm.d/live-autologin
	then

cat >> /root/etc/default/kdm.d/live-autologin << EOF
AUTOLOGINUSER=${USERNAME}
AUTOLOGINAGAIN=true
AUTOLOGINDELAY=0
EOF

	fi

elif [ -f /root/etc/kde3/kdm/kdmrc ]
then
	# Configure KDM autologin
	sed -i -r -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \
		  -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=${USERNAME}/" \
		  -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \
	/root/etc/kde3/kdm/kdmrc
elif [ -f /root/etc/kde4/kdm/kdmrc ]
then
	# Configure KDM-KDE4 autologin
	sed -i -r -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \
		  -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=$USERNAME/" \
		  -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \
	/root/etc/kde4/kdm/kdmrc
fi

if [ -f /root/etc/lxdm/lxdm.conf ]
then
	# Configure LXDM autologin
	sed -i -r -e "s/^# autologin=dgod/autologin=$USERNAME/" \
		  -e "s/^# session/session/" \
	/root/etc/lxdm/lxdm.conf
fi

log_end_msg
