summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-04-07 09:52:07 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-04-07 00:51:12 +0100
commit7f130e0b5ce6cfc6b35176465f260092cd3b3d64 (patch)
tree6677b8c8ed03ba24847eae8425838c9fb9935cbb
parentcb170543605288b3e8badfac3a54c588f4c95413 (diff)
downloadbitbake-7f130e0b5ce6cfc6b35176465f260092cd3b3d64.tar.gz
bitbake-diffsigs: change to use argparse
Argparse is a bit easier to deal with than optparse, and since we're about to add some options, migrate this script over. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbin/bitbake-diffsigs64
1 files changed, 33 insertions, 31 deletions
diff --git a/bin/bitbake-diffsigs b/bin/bitbake-diffsigs
index 4ca085f07..e3f848d0e 100755
--- a/bin/bitbake-diffsigs
+++ b/bin/bitbake-diffsigs
@@ -3,7 +3,7 @@
# bitbake-diffsigs
# BitBake task signature data comparison utility
#
-# Copyright (C) 2012-2013 Intel Corporation
+# Copyright (C) 2012-2013, 2017 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
@@ -22,7 +22,7 @@ import os
import sys
import warnings
import fnmatch
-import optparse
+import argparse
import logging
import pickle
@@ -83,22 +83,27 @@ def find_compare_task(bbhandler, pn, taskname):
-parser = optparse.OptionParser(
- description = "Compares siginfo/sigdata files written out by BitBake",
- usage = """
- %prog -t recipename taskname
- %prog sigdatafile1 sigdatafile2
- %prog sigdatafile1""")
+parser = argparse.ArgumentParser(
+ description="Compares siginfo/sigdata files written out by BitBake")
-parser.add_option("-D", "--debug",
- help = "enable debug",
- action = "store_true", dest="debug", default = False)
+parser.add_argument('-d', '--debug',
+ help='Enable debug output',
+ action='store_true')
-parser.add_option("-t", "--task",
- help = "find the signature data files for last two runs of the specified task and compare them",
- action="store", dest="taskargs", nargs=2, metavar='recipename taskname')
+parser.add_argument("-t", "--task",
+ help="find the signature data files for last two runs of the specified task and compare them",
+ action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
-options, args = parser.parse_args(sys.argv)
+parser.add_argument("sigdatafile1",
+ help="First signature file to compare (or signature file to dump, if second not specified). Not used when using -t/--task.",
+ action="store", nargs='?')
+
+parser.add_argument("sigdatafile2",
+ help="Second signature file to compare",
+ action="store", nargs='?')
+
+
+options = parser.parse_args()
if options.debug:
logger.setLevel(logging.DEBUG)
@@ -108,20 +113,17 @@ if options.taskargs:
tinfoil.prepare(config_only=True)
find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1])
else:
- if len(args) == 1:
- parser.print_help()
- else:
- try:
- if len(args) == 2:
- output = bb.siggen.dump_sigfile(sys.argv[1])
- else:
- output = bb.siggen.compare_sigfiles(sys.argv[1], sys.argv[2])
- except IOError as e:
- logger.error(str(e))
- sys.exit(1)
- except (pickle.UnpicklingError, EOFError):
- logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
- sys.exit(1)
+ try:
+ if options.sigdatafile1 and options.sigdatafile2:
+ output = bb.siggen.compare_sigfiles(options.sigdatafile1, options.sigdatafile2)
+ elif options.sigdatafile1:
+ output = bb.siggen.dump_sigfile(options.sigdatafile1)
+ except IOError as e:
+ logger.error(str(e))
+ sys.exit(1)
+ except (pickle.UnpicklingError, EOFError):
+ logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
+ sys.exit(1)
- if output:
- print('\n'.join(output))
+ if output:
+ print('\n'.join(output))