summaryrefslogtreecommitdiffstats
path: root/system-config/components/0050-locales
diff options
context:
space:
mode:
Diffstat (limited to 'system-config/components/0050-locales')
-rwxr-xr-xsystem-config/components/0050-locales71
1 files changed, 71 insertions, 0 deletions
diff --git a/system-config/components/0050-locales b/system-config/components/0050-locales
new file mode 100755
index 0000000..583d4a1
--- /dev/null
+++ b/system-config/components/0050-locales
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+## live-config(7) - System Configuration Components
+## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
+##
+## This program 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.
+
+
+#set -e
+
+Cmdline ()
+{
+ # Reading kernel command line
+ for _PARAMETER in ${LIVE_CONFIG_CMDLINE}
+ do
+ case "${_PARAMETER}" in
+ live-config.locales=*|locales=*)
+ LIVE_LOCALES="${_PARAMETER#*locales=}"
+ ;;
+ esac
+ done
+}
+
+Init ()
+{
+ # Checking if package is installed or already configured
+ if [ ! -e /var/lib/dpkg/info/locales.list ] || \
+ [ -e /var/lib/live/config/locales ]
+ then
+ exit 0
+ fi
+
+ echo -n " locales"
+}
+
+Config ()
+{
+ if echo "${LIVE_LOCALES}" | grep -qs ","
+ then
+ # multiple locales specified
+ _LOCALE="$(echo ${LIVE_LOCALES} | sed -e 's|,.*||')"
+ _LOCALES="$(echo ${LIVE_LOCALES} | sed -e "s|^${_LOCALE},||" -e 's|,| |g')"
+ else
+ # one or no locale specified
+ _LOCALE="${LIVE_LOCALES:-en_US.UTF-8}"
+ _LOCALES=""
+ fi
+
+ echo "LANG=${_LOCALE}" > /etc/default/locale
+
+ if [ -e /etc/locale.gen ]
+ then
+ for _LOCALE in ${_LOCALE} ${_LOCALES}
+ do
+ _CHARSET="$(echo ${_LOCALE} | awk -F. '{ print $2 }')"
+
+ sed -i -e "s|# ${_LOCALE} ${_CHARSET}|${_LOCALE} ${_CHARSET}|" /etc/locale.gen
+ done
+ fi
+
+ locale-gen --keep-existing > /dev/null 2>&1
+
+ # Creating state file
+ touch /var/lib/live/config/locales
+}
+
+Cmdline
+Init
+Config