#! /bin/sh
### BEGIN INIT INFO
# Provides:          darkness
# Required-Start:    $local_fs
# Required-Stop:
# X-Start-Before:    x-display-manager
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: set language according to boot settings when in live-mode
### END INIT INFO

PATH=/usr/sbin:/usr/bin:/sbin:/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions


do_start() {

	#---------------------------------------------------
	# only do things when booted as a live system
	if [ ! "$(cat /proc/cmdline|grep 'boot=live')" ]; then
		exit 0
	fi


	#---------------------------------------------------
	# fix xorg-intel when we are at it
	# https://wiki.archlinux.org/title/Intel_graphics#X_freeze/crash_with_intel_driver
	if [ -n "$(lspci|grep GM965/GL960)" ]; then
		cat > /etc/X11/xorg.conf.d/20-intel.conf <<XXX
Section "Device"
  Identifier "Intel Graphics"
  Driver "intel"
#Option "NoAccel" "True"
  Option "DRI" "False"
EndSection
XXX
	fi


	#---------------------------------------------------
	# persistent storage if booted from flashdrive - starts at 3GB
	DEV="$(mount|sed -n 's#^\(/dev/sd[a-z]\)[0-9][0-9]*.* \/run\/live\/medium .*$#\1#p')"
	if [ -n "$DEV" ]; then
		if [ ! -e ${DEV}3 ]; then
			fdisk ${DEV} << XXX
n
p

$((3*1024*1024*2))

p
w
q
XXX
			mke2fs -t ext4 ${DEV}3 -L attic
		fi
		fsck ${DEV}3
		mkdir -p /attic
		mount ${DEV}3 /attic
		chown user:user /attic

		cat > /tmp/attic.desktop << XXX
[Desktop Entry]
Icon=media-flash-usb-mounted
Type=Link
URL[\$e]=/attic
XXX
		chown user:user /tmp/attic.desktop
		mv /tmp/attic.desktop /home/user/Desktop/
	fi


	#---------------------------------------------------
	# Openssh most likely has no keys
	dpkg-reconfigure openssh-server &


	#---------------------------------------------------
	# disable suspend
	chmod a-rwx /sys/power/state


	#---------------------------------------------------
	# change language and keyboard according to bootloader
	LANG=$(cat /proc/cmdline|tr ' ' '\n'|grep locales=|cut -d = -f 2)
	if [ -z "$LANG" ]; then
		LANG=C.UTF-8
	fi
	echo -e "LANG=$LANG\nLANGUAGE=$LANGUAGE\n" > /etc/locale.conf

	KBD=$(cat /proc/cmdline|tr ' ' '\n'|grep keyboard-layouts=|cut -d = -f 2)
	if [ ! -z "$KBD" ]; then
		sed 's|XKBLAYOUT=.*$|XKBLAYOUT="'$KBD'"|' -i /etc/default/keyboard
	else
		KBD=en
	fi

	echo LANG=C.UTF-8 > /etc/locale.conf
	echo LANG=C.UTF-8 > /etc/default/locale
	case $KBD in
		de) sed 's#\(Language=\).*$#\1de:ru:en_US#g' -i /home/*/.trinity/share/config/kdeglobals /home/*/.trinity/share/config/taskbar_panelapplet*
			sed 's#\(Country=\).*$#\1at#g'           -i /home/*/.trinity/share/config/kdeglobals /home/*/.trinity/share/config/taskbar_panelapplet*
			sed 's#\(LayoutList=\).*#\1at,ru,us#g'   -i /home/*/.trinity/share/config/kxkbrc
			update-locale LANG=de_AT.UTF-8 LANGUAGE="de_AT:de"
			;;
		ru) sed 's#\(Language=\).*$#\1ru:de:en_US#g' -i /home/*/.trinity/share/config/kdeglobals /home/*/.trinity/share/config/taskbar_panelapplet*
			sed 's#\(Country=\).*$#\1ru#g'           -i /home/*/.trinity/share/config/kdeglobals /home/*/.trinity/share/config/taskbar_panelapplet*
			sed 's#\(LayoutList=\).*#\1ru,at,us#g'   -i /home/*/.trinity/share/config/kxkbrc
			update-locale LANG=ru_RU.UTF-8 LANGUAGE="ru_RU:ru"
			;;
		*)  sed 's#\(Language=\).*$#\1en_US:ru:de#g' -i /home/*/.trinity/share/config/kdeglobals /home/*/.trinity/share/config/taskbar_panelapplet*
			sed 's#\(Country=\).*$#\1en#g'           -i /home/*/.trinity/share/config/kdeglobals /home/*/.trinity/share/config/taskbar_panelapplet*
			sed 's#\(LayoutList=\).*#\1us,ru,at#g'   -i /home/*/.trinity/share/config/kxkbrc
			update-locale LANG=C.UTF-8 LANGUAGE
			;;
	esac

	UNUSED=$(dpkg -l tde-i18n-*-trinity | grep ^ii| awk '{print $2}'|grep --invert-match "tde-i18n-${KBD}-trinity")
	if [ -n "$UNUSED" ]; then
		dpkg -P $UNUSED
	fi
}


do_stop() {
	# nothing to do
	:
}



case "$1" in
    start)
	do_start
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
    status)
        # No-op
        exit 0
        ;;
    stop)
	do_stop
        exit 0
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac
