[pykickstart] [PATCH] Add support for layout switching options
Vratislav Podzimek
vpodzime at redhat.com
Mon Oct 22 16:31:44 UTC 2012
Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
pykickstart/commands/keyboard.py | 16 +++++++++++-----
tests/commands/keyboard.py | 4 ++++
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/pykickstart/commands/keyboard.py b/pykickstart/commands/keyboard.py
index 40f7882..915ecc2 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_opts = kwargs.get("switch_opts", [])
def __str__(self):
if not any((self._keyboard, self.x_layouts, self.vc_keymap)):
@@ -92,18 +93,23 @@ class F18_Keyboard(FC3_Keyboard):
layouts_str += ",'%s'" % layout
retval += " --xlayouts=%s" % layouts_str
+ if self.switch_opts:
+ retval += " --switch=%s" % ", ".join(switch_opts)
+
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_opts", 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