[pykickstart] [PATCHv2] Add support for layout switching options
Vratislav Podzimek
vpodzime at redhat.com
Tue Oct 23 11:02:01 UTC 2012
Second version of the patch. I will also bump pykickstartver in anaconda.spec.in
once I push this patch set.
Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
pykickstart/commands/keyboard.py | 19 ++++++++++++++-----
tests/commands/keyboard.py | 4 ++++
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/pykickstart/commands/keyboard.py b/pykickstart/commands/keyboard.py
index 40f7882..a93314f 100644
--- a/pykickstart/commands/keyboard.py
+++ b/pykickstart/commands/keyboard.py
@@ -63,6 +63,7 @@ class F18_Keyboard(FC3_Keyboard):
self._keyboard = kwargs.get("_keyboard", "")
self.vc_keymap = kwargs.get("vc_keymap", "")
self.x_layouts = kwargs.get("x_layouts", [])
+ self.switch_options = kwargs.get("switch_options", [])
def __str__(self):
if not any((self._keyboard, self.x_layouts, self.vc_keymap)):
@@ -92,18 +93,26 @@ class F18_Keyboard(FC3_Keyboard):
layouts_str += ",'%s'" % layout
retval += " --xlayouts=%s" % layouts_str
+ if self.switch_options:
+ switch_str = "'%s'" % self.switch_options[0]
+ for opt in self.switch_options[1:]:
+ switch_str += ",'%s'" % opt
+ retval += " --switch=%s" % switch_str
+
return retval
def _getParser(self):
- def x_layouts_callback(option, opt_str, value, parser):
- for layout in value.split(","):
- if layout:
- parser.values.ensure_value(option.dest, []).append(layout)
+ def csv_parse_callback(option, opt_str, value, parser):
+ for item in value.split(","):
+ if item:
+ parser.values.ensure_value(option.dest, []).append(item)
op = FC3_Keyboard._getParser(self)
op.add_option("--vckeymap", dest="vc_keymap", action="store", default="")
op.add_option("--xlayouts", dest="x_layouts", action="callback",
- callback=x_layouts_callback, nargs=1, type="string")
+ callback=csv_parse_callback, nargs=1, type="string")
+ op.add_option("--switch", dest="switch_options", action="callback",
+ callback=csv_parse_callback, nargs=1, type="string")
return op
diff --git a/tests/commands/keyboard.py b/tests/commands/keyboard.py
index a847233..98a7520 100644
--- a/tests/commands/keyboard.py
+++ b/tests/commands/keyboard.py
@@ -49,6 +49,10 @@ class F18_TestCase(FC3_TestCase):
self.assert_parse("keyboard --xlayouts=cz sk")
self.assert_parse("keyboard --vckeymap=us --xlayouts=cz")
self.assert_parse("keyboard --vckeymap=us --xlayouts=cz,'cz (qwerty)' sk")
+ self.assert_parse("keyboard --vckeymap=us --xlayouts=cz "
+ "--switch=grp:alt_shift_toggle")
+ self.assert_parse("keyboard --vckeymap=us --xlayouts=cz "
+ "--switch=grp:alt_shift_toggle,grp:switch")
# fail
self.assert_parse_error("keyboard", KickstartValueError)
--
1.7.11.7
More information about the anaconda-patches
mailing list