aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2013-10-18 15:19:58 +0100
committerPaul Eggleton <paul.eggleton@linux.intel.com>2013-10-28 17:08:07 +0000
commitfeb317513fff638ad7abdba8ab34b8413f0ab055 (patch)
tree19ccb798dcd792030fab2a1256b719957e91b312 /scripts
parent8b9ee57afbbcf633cba66e4b6e8ab7339ad6d391 (diff)
downloadopenembedded-core-contrib-feb317513fff638ad7abdba8ab34b8413f0ab055.tar.gz
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 Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/oe-pkgdata-util78
1 files changed, 38 insertions, 40 deletions
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index c0fd50d549..e34fcbe079 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -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)
-
-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)
+ parser.print_help()
+ sys.exit(1)
+
+
+if __name__ == "__main__":
+ main()