From b21b551953bea9005328999abd5687ce78ba65b3 Mon Sep 17 00:00:00 2001 From: Nikos Skalkotos Date: Thu, 4 Jul 2013 11:01:14 +0300 Subject: [PATCH] Add option for printing the needed sysprep params --- image_creator/main.py | 14 +++++++++++--- image_creator/os_type/__init__.py | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/image_creator/main.py b/image_creator/main.py index edee4fe..8fecf1b 100644 --- a/image_creator/main.py +++ b/image_creator/main.py @@ -121,6 +121,10 @@ def parse_options(input_args): "input media", default=[], action="append", metavar="SYSPREP") + parser.add_option("--print-sysprep-params", dest="print_sysprep_params", + default=False, help="print the needed sysprep parameters" + " for this input media", action="store_true") + parser.add_option("--sysprep-param", dest="sysprep_params", default=[], help="Add KEY=VALUE system preparation parameter", action="append") @@ -191,9 +195,9 @@ def image_creator(): options = parse_options(sys.argv[1:]) if options.outfile is None and not options.upload and not \ - options.print_sysprep: - raise FatalError("At least one of `-o', `-u' or `--print-sysprep' " - "must be set") + options.print_sysprep and not options.print_sysprep_params: + raise FatalError("At least one of `-o', `-u', `--print-sysprep' or " + "`--print-sysprep-params' must be set") if options.silent: out = SilentOutput() @@ -279,6 +283,10 @@ def image_creator(): image.os.print_syspreps() out.output() + if options.print_sysprep_params: + image.os.print_sysprep_params() + out.output() + if options.outfile is None and not options.upload: return 0 diff --git a/image_creator/os_type/__init__.py b/image_creator/os_type/__init__.py index 8501094..729b749 100644 --- a/image_creator/os_type/__init__.py +++ b/image_creator/os_type/__init__.py @@ -183,6 +183,23 @@ class OSBase(object): descr = wrapper.fill(textwrap.dedent(sysprep.__doc__)) self.out.output(' %s:\n%s\n' % (name, descr)) + def print_sysprep_params(self): + """Print the system preparation parameter the user may use""" + + self.out.output("Needed system preparation parameters:") + + params = self.needed_sysprep_params() + + if len(params) == 0: + self.out.output("(none)") + return + + for param in params: + self.out.output("\t%s (%s): %s" % + (param.description, param.name, + self.sysprep_params[param.name] if param.name in + self.sysprep_params else "(none)")) + def do_sysprep(self): """Prepare system for image creation.""" -- 1.7.10.4