1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

wic: Use argparse instead of optparse

* optparse is deprecated and will not be developed further
    (see: https://docs.python.org/2/library/optparse.html)
* argparse supports subcommands, which simplifies definition of
    arguments and options
* reimplement help mechanism through sub-subcommands

[YOCTO #9636]

(From OE-Core rev: 4fe9635c72a6ee1becc47d832ab54724176ee811)

Signed-off-by: Andreas Reichel <andreas.reichel.ext@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Daniel Wagner <daniel.wagner@siemens.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Andreas J. Reichel
2017-04-21 14:11:42 +02:00
committed by Richard Purdie
parent ef506f58da
commit 05aa049e2c
3 changed files with 154 additions and 93 deletions
+16 -7
View File
@@ -56,7 +56,7 @@ def wic_help(args, usage_str, subcommands):
"""
Subcommand help dispatcher.
"""
if len(args) == 1 or not display_help(args[1], subcommands):
if args.help_topic == None or not display_help(args.help_topic, subcommands):
print(usage_str)
@@ -82,19 +82,20 @@ def invoke_subcommand(args, parser, main_command_usage, subcommands):
Dispatch to subcommand handler borrowed from combo-layer.
Should use argparse, but has to work in 2.6.
"""
if not args:
if not args.command:
logger.error("No subcommand specified, exiting")
parser.print_help()
return 1
elif args[0] == "help":
elif args.command == "help":
wic_help(args, main_command_usage, subcommands)
elif args[0] not in subcommands:
logger.error("Unsupported subcommand %s, exiting\n", args[0])
elif args.command not in subcommands:
logger.error("Unsupported subcommand %s, exiting\n", args.command)
parser.print_help()
return 1
else:
usage = subcommands.get(args[0], subcommand_error)[1]
subcommands.get(args[0], subcommand_error)[0](args[1:], usage)
subcmd = subcommands.get(args.command, subcommand_error)
usage = subcmd[1]
subcmd[0](args, usage)
##
@@ -795,3 +796,11 @@ DESCRIPTION
.wks files.
"""
wic_help_help = """
NAME
wic help - display a help topic
DESCRIPTION
Specify a help topic to display it. Topics are shown above.
"""