Package: languagechooser
Version: svn
Severity: wishlist
Tags: patch l10n d-i

Attached patch adds console-cyrillic support for languagechooser
prebaseconfig (similar to console-tools). Prebaseconfig expects
information about cyrillic keyboard in form:

cyr=style,size,encoding,layout(options)

Example for Ukrainian:

cyr=uni,16,koi8-u,ua_ms(ctrl_shift_toggle)

I tested this script with console-cyrillic installed with highest debconf
priority on working system.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.4.25
Locale: LANG=uk_UA, LC_CTYPE=uk_UA
Index: prebaseconfig
===================================================================
--- prebaseconfig       (revision 13104)
+++ prebaseconfig       (working copy)
@@ -2,9 +2,19 @@
 
 . /usr/share/debconf/confmodule
 
+modify_cyrconfig() {
+       if [ "$2" ]; then
+          sed -e "s/^$1 .*\$/$1 $2/" \
+                 $cyrconfig > $cyrconfig.tmp && \
+           mv $cyrconfig.tmp $cyrconfig
+       fi
+}
+
 db_get debian-installer/consoledisplay || true
-consolefont=`echo $RET | sed -e 's/^kbd=//'`
-if [ "$consolefont" != "$RET" ]; then
+consoletype=`echo $RET | sed -e 's/=.*$//'`
+case "$consoletype" in
+kbd)
+    consolefont=`echo $RET | sed -e 's/^kbd=//'`
     if apt-install console-tools; then
         ctconfig=/target/etc/console-tools/config
         acm=`echo $consolefont | sed -e 's/.*(//' -e 's/).*//'`
@@ -21,7 +31,31 @@
             mv $ctconfig.tmp $ctconfig
         fi
     fi
-fi
+    ;;
+cyr)
+    consolefont=`echo $RET | sed -e 's/^cyr=//'`
+    if apt-install console-cyrillic; then
+        cyrconfig=/target/etc/console-cyrillic
+       # format of the consolefont is:
+       # style,size,encoding,layout(option1 option2)
+       style=`echo $consolefont | sed -e 's/,.*$//'`
+       size=`echo $consolefont | sed -e 's/^[^,]*,\([^,]*\),.*$/\1/'`
+       encoding=`echo $consolefont | sed -e 's/^[^,]*,[^,]*,\([^,]*\),.*$/\1/'`
+       layoutopts=`echo $consolefont | sed -e 
's/^[^,]*,[^,]*,[^,]*,\([^)]*)\).*$/\1/'`
+       layout=`echo $layoutopts | sed -e 's/(.*)$//'`
+       options=`echo $layoutopts | sed -e 's/.*(//' -e 's/).*//'`
+       modify_cyrconfig style "$style"
+       modify_cyrconfig size "$size"
+       modify_cyrconfig encoding "$encoding"
+       modify_cyrconfig layout "$layout"
+       modify_cyrconfig options "$options"
+       sed -e 's/^.*Bootsetup: .*$/# Bootsetup: YES/' $cyrconfig > $cyrconfig.tmp && \
+          mv $cyrconfig.tmp $cyrconfig
+       sed -e 's/^.*Debconf: .*$/# Debconf: NO/' $cyrconfig > $cyrconfig.tmp && \
+          mv $cyrconfig.tmp $cyrconfig
+    fi
+    ;;
+esac
  
 # Pass the language/locale information needed by base-config into
 # /target/root/dbootstrap_settings.

Reply via email to