#!/bin/sh

## 1075-trinity-configs - Additional Configuration Script for Debian Live
## enables TDE to automatically select language and keyboard from boot prompt cmdline
## for TDE 3.5.13
## this script must run after user-setup and before login
##
## Copyright (C) 2011 David Hare <exe-linux@fastfishwebsolutions.com>
##
## 007-trinitylocales comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
## This is free software, and you are welcome to redistribute it
## under certain conditions; see COPYING for details.

trinity_configs ()
{
	# check if this script is already configured
	if [ -e /var/lib/live/config/trinity-locales ]
	then
		return
	fi
echo -n " trinity-configs "
	Configure_trinity_configs
}

Configure_trinity_configs ()
{

#get user id .. (was already set up by 002-user-setup and skel copied over)
NORMALUSER=$(cat /etc/passwd | grep 1000 |cut -d: -f1)

#get default system locale e.g. es_ES.UTF-8 or en_GB.UTF-8 and simplify it
DEFAULTLOCALE="$(grep -s 'LANG=' /etc/default/locale|grep "[a-z][a-z]_[A-Z][A-Z]" | sed 's/LANG=//' | sed 's/.UTF-8//'| tr -d '"' )"

if [ -z "$DEFAULTLOCALE" ]; then
DEFAULTLOCALE="en_US"
fi

#set country value for trinity (two lowercase letters)
TRINITYCOUNTRY=$(echo $DEFAULTLOCALE | sed 's/[a-z][a-z]_//' |tr '[A-Z][A-Z]' '[a-z][a-z]')

# these rc files must exist in user's ~ now, before login, so we can edit them (they won't yet, unless they are in skel, in which case copy them in now)

mkdir -p "/home/$NORMALUSER/.trinity/share/config/"

if ! [ -f /etc/skel/.trinity/share/config/kcontrolrc ]; then
cp -a /usr/share/live-config-trinity/kcontrolrc /home/$NORMALUSER/.trinity/share/config/
else
cp -a /etc/skel/.trinity/share/config/kcontrolrc /home/$NORMALUSER/.trinity/share/config/
fi

if ! [ -f /etc/skel/.trinity/share/config/kdeglobals ]; then
cp -a /usr/share/live-config-trinity/kdeglobals /home/$NORMALUSER/.trinity/share/config/
else
cp -a /etc/skel/.trinity/share/config/kdeglobals /home/$NORMALUSER/.trinity/share/config/
fi

if ! [ -f /etc/skel/.trinity/share/config/kdesktoprc ]; then
cp -a /usr/share/live-config-trinity/kdesktoprc /home/$NORMALUSER/.trinity/share/config/
else
cp -a /etc/skel/.trinity/share/config/kdesktoprc /home/$NORMALUSER/.trinity/share/config/
fi

if ! [ -f /etc/skel/.trinity/share/config/kxkbrc ]; then
cp -a /usr/share/live-config-trinity/kxkbrc /home/$NORMALUSER/.trinity/share/config/
else
cp -a /etc/skel/.trinity/share/config/kxkbrc /home/$NORMALUSER/.trinity/share/config/
fi

# while we're at it , disable ktip, it's a nuisance
cat > "/home/$NORMALUSER/.trinity/share/config/ktiprc" << EOF
[TipOfDay]
RunOnStart=false
EOF

sed -i "s/Country=[a-z][a-z]/Country=$TRINITYCOUNTRY/" /home/$NORMALUSER/.trinity/share/config/kdeglobals

	#set language for trinity; it's just 2 lowercase except: en_GB en_US pt_BR (maybe some others)
	# TODO fix for any others
	if [ "$DEFAULTLOCALE" = "en_GB" ] || [ "$DEFAULTLOCALE" = "en_US" ] || [ "$DEFAULTLOCALE" = "pt_BR" ]
	then
	#just as it is
	TRINITYLANG="$DEFAULTLOCALE"
	else
	# it's just 2 lowercase (e.g. es), except en_GB en_US pt_BR
	TRINITYLANG=$(echo $DEFAULTLOCALE | sed "s/_[A-Z][A-Z]//")
	fi

sed -i "s/Language=.*/Language=$TRINITYLANG/" /home/$NORMALUSER/.trinity/share/config/kdeglobals

###################################
#set initial keyboard for Trinity session

# get the LayoutList, exclude the one we will put first in the list, make sure no comma is at start or end of the list (can edit /usr/share/live-config-trinity/kxkbrc for other layouts)

KB_ALT=$(echo "gb,es,fr,de,us,pt,it" |sed "s/$TRINITYCOUNTRY,//"|sed "s/,$TRINITYCOUNTRY//")

# now insert the one we want, first in the list with a comma after
sed -i "s/LayoutList=.*/LayoutList=$TRINITYCOUNTRY,$KB_ALT/" /home/$NORMALUSER/.trinity/share/config/kxkbrc

# now copy them into skel so the installer will keep language/keyboard settings for new user

mkdir -p "/etc/skel/.trinity/share/config/"
cp -a /home/$NORMALUSER/.trinity/share/config/kcontrolrc /etc/skel/.trinity/share/config/
cp -a /home/$NORMALUSER/.trinity/share/config/kdeglobals /etc/skel/.trinity/share/config/
cp -a /home/$NORMALUSER/.trinity/share/config/kxkbrc /etc/skel/.trinity/share/config/
cp -a /home/$NORMALUSER/.trinity/share/config/kdesktoprc /etc/skel/.trinity/share/config/

# make sure root doesn't own user files
chown -R $NORMALUSER:$NORMALUSER /home/$NORMALUSER/.trinity

###################################

# sort kdmrc/tdmrc

if [ -f /etc/trinity/kdm/kdmrc ]; then
TDM_CONFIGFILE=/etc/trinity/kdm/kdmrc
fi

if [ -f /etc/trinity/tdm/tdmrc ]; then
TDM_CONFIGFILE=/etc/trinity/tdm/tdmrc
fi

if [ "$DEFAULTLOCALE" != "en_US" ]; then

	if grep -q "Language=" $TDM_CONFIGFILE; then
	sed -i "s:#Language=:Language=:" $TDM_CONFIGFILE
	sed -i "s:Language=.*:Language=$DEFAULTLOCALE:" $TDM_CONFIGFILE

	else
	sed -i  "/\[X-\*-Greeter\]/a\Language=$DEFAULTLOCALE" $TDM_CONFIGFILE

	fi
fi


# Creating state file
touch /var/lib/live/config/trinity-configs

}

trinity_configs
