diff options
Diffstat (limited to 'scripts/lib/wic/3rdparty/pykickstart/options.py')
-rw-r--r-- | scripts/lib/wic/3rdparty/pykickstart/options.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/scripts/lib/wic/3rdparty/pykickstart/options.py b/scripts/lib/wic/3rdparty/pykickstart/options.py index 341c5d7298..b2d8e3e516 100644 --- a/scripts/lib/wic/3rdparty/pykickstart/options.py +++ b/scripts/lib/wic/3rdparty/pykickstart/options.py | |||
@@ -143,6 +143,24 @@ def _check_string(option, opt, value): | |||
143 | else: | 143 | else: |
144 | return value | 144 | return value |
145 | 145 | ||
146 | def _check_size(option, opt, value): | ||
147 | # Former default was MB | ||
148 | if (value.isdigit()): | ||
149 | return int(value) * 1024L | ||
150 | |||
151 | mapping = {"opt": opt, "value": value} | ||
152 | if (not value[:-1].isdigit()): | ||
153 | raise OptionValueError(_("Option %(opt)s: invalid size value: %(value)r") % mapping) | ||
154 | |||
155 | size = int(value[:-1]) | ||
156 | if (value.endswith("k") or value.endswith("K")): | ||
157 | return size | ||
158 | if (value.endswith("M")): | ||
159 | return size * 1024L | ||
160 | if (value.endswith("G")): | ||
161 | return size * 1024L * 1024L | ||
162 | raise OptionValueError(_("Option %(opt)s: invalid size value: %(value)r") % mapping) | ||
163 | |||
146 | # Creates a new Option class that supports several new attributes: | 164 | # Creates a new Option class that supports several new attributes: |
147 | # - required: any option with this attribute must be supplied or an exception | 165 | # - required: any option with this attribute must be supplied or an exception |
148 | # is thrown | 166 | # is thrown |
@@ -169,10 +187,11 @@ class KSOption (Option): | |||
169 | ACTIONS = Option.ACTIONS + ("map", "map_extend",) | 187 | ACTIONS = Option.ACTIONS + ("map", "map_extend",) |
170 | STORE_ACTIONS = Option.STORE_ACTIONS + ("map", "map_extend",) | 188 | STORE_ACTIONS = Option.STORE_ACTIONS + ("map", "map_extend",) |
171 | 189 | ||
172 | TYPES = Option.TYPES + ("ksboolean", "string") | 190 | TYPES = Option.TYPES + ("ksboolean", "string", "size") |
173 | TYPE_CHECKER = copy(Option.TYPE_CHECKER) | 191 | TYPE_CHECKER = copy(Option.TYPE_CHECKER) |
174 | TYPE_CHECKER["ksboolean"] = _check_ksboolean | 192 | TYPE_CHECKER["ksboolean"] = _check_ksboolean |
175 | TYPE_CHECKER["string"] = _check_string | 193 | TYPE_CHECKER["string"] = _check_string |
194 | TYPE_CHECKER["size"] = _check_size | ||
176 | 195 | ||
177 | def _check_required(self): | 196 | def _check_required(self): |
178 | if self.required and not self.takes_value(): | 197 | if self.required and not self.takes_value(): |