scripts: print usage in argparse-using scripts when a command-line error occurs

For scripts that use Python's standard argparse module to parse
command-line arguments, create a subclass which will show the usage
the usage information when a command-line parsing error occurs. The most
common case would be when the script is run with no arguments; at least
then the user immediately gets to see what arguments they might need to
pass instead of just an error message.

(From OE-Core rev: d62fe7c9bc2df6a4464440a3cae0539074bf99aa)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2015-12-22 17:02:54 +13:00
committed by Richard Purdie
parent 548d4332e8
commit 8e0a84c901
10 changed files with 38 additions and 15 deletions

View File

@@ -38,6 +38,7 @@ lib_path = scripts_path + '/lib'
sys.path = sys.path + [lib_path]
import scriptpath
import argparse_oe
# Add meta/lib to sys.path
scriptpath.add_oe_lib_path()
@@ -82,7 +83,7 @@ log = logger_create()
# Define and return the arguments parser for the script
def get_args_parser():
description = "This script is used to run automated runtime tests using remotely published image files. You should prepare the build environment just like building local images and running the tests."
parser = argparse.ArgumentParser(description=description)
parser = argparse_oe.ArgumentParser(description=description)
parser.add_argument('--image-types', required=True, action="store", nargs='*', dest="image_types", default=None, help='The image types to test(ex: core-image-minimal).')
parser.add_argument('--repo-link', required=True, action="store", type=str, dest="repo_link", default=None, help='The link to the remote images repository.')
parser.add_argument('--required-packages', required=False, action="store", nargs='*', dest="required_packages", default=None, help='Required packages for the tests. They will be built before the testing begins.')