summaryrefslogtreecommitdiffstats
path: root/scripts/lib/wic/3rdparty/pykickstart/options.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/wic/3rdparty/pykickstart/options.py')
-rw-r--r--scripts/lib/wic/3rdparty/pykickstart/options.py21
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
146def _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():