summaryrefslogtreecommitdiffstats
path: root/scripts/lib/wic/ksparser.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/wic/ksparser.py')
-rw-r--r--scripts/lib/wic/ksparser.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
index 3453d9cb9d..913e3283dc 100644
--- a/scripts/lib/wic/ksparser.py
+++ b/scripts/lib/wic/ksparser.py
@@ -51,11 +51,11 @@ class KickStartParser(ArgumentParser):
def error(self, message):
raise ArgumentError(None, message)
-def sizetype(default):
+def sizetype(default, size_in_bytes=False):
def f(arg):
"""
Custom type for ArgumentParser
- Converts size string in <num>[K|k|M|G] format into the integer value
+ Converts size string in <num>[S|s|K|k|M|G] format into the integer value
"""
try:
suffix = default
@@ -67,12 +67,20 @@ def sizetype(default):
except ValueError:
raise ArgumentTypeError("Invalid size: %r" % arg)
+
+ if size_in_bytes:
+ if suffix == 's' or suffix == 'S':
+ return size * 512
+ mult = 1024
+ else:
+ mult = 1
+
if suffix == "k" or suffix == "K":
- return size
+ return size * mult
if suffix == "M":
- return size * 1024
+ return size * mult * 1024
if suffix == "G":
- return size * 1024 * 1024
+ return size * mult * 1024 * 1024
raise ArgumentTypeError("Invalid size: %r" % arg)
return f
@@ -141,7 +149,7 @@ class KickStart():
part.add_argument('mountpoint', nargs='?')
part.add_argument('--active', action='store_true')
part.add_argument('--align', type=int)
- part.add_argument('--offset', type=sizetype("K"))
+ part.add_argument('--offset', type=sizetype("K", True))
part.add_argument('--exclude-path', nargs='+')
part.add_argument('--include-path', nargs='+', action='append')
part.add_argument('--change-directory')