scripts/oe-pkgdata-util: improve help text and command line parsing

* Use optparse to parse command line
* Make help text actually helpful by describing what each command does
* Drop comment at the top listing the commands which is now superfluous

(From OE-Core rev: feb317513fff638ad7abdba8ab34b8413f0ab055)

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 2013-10-18 15:19:58 +01:00 committed by Richard Purdie
parent 9ce903bd3c
commit 8b42409dca
1 changed files with 36 additions and 38 deletions

View File

@ -4,7 +4,7 @@
#
# Written by: Paul Eggleton <paul.eggleton@linux.intel.com>
#
# Copyright 2012 Intel Corporation
# Copyright 2012-2013 Intel Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@ -19,28 +19,16 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#
# Currently only has two functions:
# 1) glob - mapping of packages to their dev/dbg/doc/locale etc. counterparts.
# 2) read-value - mapping of packagenames to their location in
# pkgdata and then returns value of selected variable (e.g. PKGSIZE)
# Could be extended in future to perform other useful querying functions on the
# pkgdata though.
#
import sys
import os
import os.path
import fnmatch
import re
def usage():
print("syntax: oe-pkgdata-util glob [-d] <pkgdatadir> <pkglist> \"<globs>\"\n \
read-value [-d] <pkgdatadir> <value-name> \"<pkgs>\"");
import optparse
def glob(args):
def glob(args, usage):
if len(args) < 3:
usage()
sys.exit(1)
@ -151,7 +139,7 @@ def glob(args):
print("\n".join(mappedpkgs))
def read_value(args):
def read_value(args, usage):
if len(args) < 3:
usage()
sys.exit(1)
@ -186,28 +174,38 @@ def read_value(args):
qvar = "%s_%s" % (var, mappedpkg)
print(readvar(revlink, qvar))
# Too lazy to use getopt
debug = False
noopt = False
args = []
for arg in sys.argv[1:]:
if arg == "--":
noopt = True
def main():
parser = optparse.OptionParser(
usage = '''%prog [options] <command> <arguments>
Available commands:
glob <pkgdatadir> <pkglistfile> "<globs>"
expand one or more glob expressions over the packages listed in
pkglistfile (one package per line)
read-value <pkgdatadir> <value-name> "<pkgs>"
read the named value from the pkgdata files for the specified
packages''')
parser.add_option("-d", "--debug",
help = "Report all SRCREV values, not just ones where AUTOREV has been used",
action="store_true", dest="debug")
options, args = parser.parse_args(sys.argv)
args = args[1:]
if len(args) < 1:
parser.print_help()
sys.exit(1)
if args[0] == "glob":
glob(args[1:], parser.print_help)
elif args[0] == "read-value":
read_value(args[1:], parser.print_help)
else:
if not noopt:
if arg == "-d":
debug = True
continue
args.append(arg)
parser.print_help()
sys.exit(1)
if len(args) < 1:
usage()
sys.exit(1)
if args[0] == "glob":
glob(args[1:])
elif args[0] == "read-value":
read_value(args[1:])
else:
usage()
sys.exit(1)
if __name__ == "__main__":
main()