diff options
| -rwxr-xr-x | scripts/bitbake-whatchanged | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/scripts/bitbake-whatchanged b/scripts/bitbake-whatchanged index af54d16f8b..a20adb2841 100755 --- a/scripts/bitbake-whatchanged +++ b/scripts/bitbake-whatchanged | |||
| @@ -25,7 +25,7 @@ import shutil | |||
| 25 | import re | 25 | import re |
| 26 | import warnings | 26 | import warnings |
| 27 | import subprocess | 27 | import subprocess |
| 28 | from optparse import OptionParser | 28 | import argparse |
| 29 | 29 | ||
| 30 | scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0]))) | 30 | scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0]))) |
| 31 | lib_path = scripts_path + '/lib' | 31 | lib_path = scripts_path + '/lib' |
| @@ -38,6 +38,8 @@ bitbakepath = scriptpath.add_bitbake_lib_path() | |||
| 38 | if not bitbakepath: | 38 | if not bitbakepath: |
| 39 | sys.stderr.write("Unable to find bitbake by searching parent directory of this script or PATH\n") | 39 | sys.stderr.write("Unable to find bitbake by searching parent directory of this script or PATH\n") |
| 40 | sys.exit(1) | 40 | sys.exit(1) |
| 41 | scriptpath.add_oe_lib_path() | ||
| 42 | import argparse_oe | ||
| 41 | 43 | ||
| 42 | import bb.siggen | 44 | import bb.siggen |
| 43 | import bb.process | 45 | import bb.process |
| @@ -219,9 +221,7 @@ def main(): | |||
| 219 | 3) Use bb.siggen.compare_sigfiles to diff the old and new stamps | 221 | 3) Use bb.siggen.compare_sigfiles to diff the old and new stamps |
| 220 | """ | 222 | """ |
| 221 | 223 | ||
| 222 | parser = OptionParser( | 224 | parser = argparse_oe.ArgumentParser(usage = """%(prog)s [options] [package ...] |
| 223 | version = "1.0", | ||
| 224 | usage = """%prog [options] [package ...] | ||
| 225 | print what will be done between the current and last builds, for example: | 225 | print what will be done between the current and last builds, for example: |
| 226 | 226 | ||
| 227 | $ bitbake core-image-sato | 227 | $ bitbake core-image-sato |
| @@ -236,17 +236,9 @@ Note: | |||
| 236 | The "nostamp" task is not included. | 236 | The "nostamp" task is not included. |
| 237 | """ | 237 | """ |
| 238 | ) | 238 | ) |
| 239 | parser.add_option("-v", "--verbose", help = "print the verbose changes", | 239 | parser.add_argument("recipe", help="recipe to check") |
| 240 | action = "store_true", dest = "verbose") | 240 | parser.add_argument("-v", "--verbose", help = "print the verbose changes", action = "store_true") |
| 241 | 241 | args = parser.parse_args() | |
| 242 | options, args = parser.parse_args(sys.argv) | ||
| 243 | |||
| 244 | verbose = options.verbose | ||
| 245 | |||
| 246 | if len(args) != 2: | ||
| 247 | parser.error("Incorrect number of arguments") | ||
| 248 | else: | ||
| 249 | recipe = args[1] | ||
| 250 | 242 | ||
| 251 | # Get the STAMPS_DIR | 243 | # Get the STAMPS_DIR |
| 252 | print("Figuring out the STAMPS_DIR ...") | 244 | print("Figuring out the STAMPS_DIR ...") |
| @@ -256,7 +248,7 @@ Note: | |||
| 256 | except: | 248 | except: |
| 257 | raise | 249 | raise |
| 258 | if not stampsdir: | 250 | if not stampsdir: |
| 259 | print("ERROR: No STAMPS_DIR found for '%s'" % recipe, file=sys.stderr) | 251 | print("ERROR: No STAMPS_DIR found for '%s'" % args.recipe, file=sys.stderr) |
| 260 | return 2 | 252 | return 2 |
| 261 | stampsdir = stampsdir.rstrip("\n") | 253 | stampsdir = stampsdir.rstrip("\n") |
| 262 | if not os.path.isdir(stampsdir): | 254 | if not os.path.isdir(stampsdir): |
| @@ -272,7 +264,7 @@ Note: | |||
| 272 | try: | 264 | try: |
| 273 | # Generate the new stamps dir | 265 | # Generate the new stamps dir |
| 274 | print("Generating the new stamps ... (need several minutes)") | 266 | print("Generating the new stamps ... (need several minutes)") |
| 275 | cmdline = "STAMPS_DIR=%s bitbake -S none %s" % (new_stampsdir, recipe) | 267 | cmdline = "STAMPS_DIR=%s bitbake -S none %s" % (new_stampsdir, args.recipe) |
| 276 | # FIXME | 268 | # FIXME |
| 277 | # The "bitbake -S" may fail, not fatal error, the stamps will still | 269 | # The "bitbake -S" may fail, not fatal error, the stamps will still |
| 278 | # be generated, this might be a bug of "bitbake -S". | 270 | # be generated, this might be a bug of "bitbake -S". |
| @@ -310,17 +302,17 @@ Note: | |||
| 310 | # PV (including PE) and PR changed | 302 | # PV (including PE) and PR changed |
| 311 | # Let the bb.siggen handle them if verbose | 303 | # Let the bb.siggen handle them if verbose |
| 312 | cnt_rv = {} | 304 | cnt_rv = {} |
| 313 | if not verbose: | 305 | if not args.verbose: |
| 314 | for i in ('pv', 'pr'): | 306 | for i in ('pv', 'pr'): |
| 315 | cnt_rv[i] = print_vrchanged(new_recon, old_recon, i) | 307 | cnt_rv[i] = print_vrchanged(new_recon, old_recon, i) |
| 316 | 308 | ||
| 317 | # Dependencies changed (use bitbake-diffsigs) | 309 | # Dependencies changed (use bitbake-diffsigs) |
| 318 | cnt_dep = print_depchanged(new_recon, old_recon, verbose) | 310 | cnt_dep = print_depchanged(new_recon, old_recon, args.verbose) |
| 319 | 311 | ||
| 320 | total_changed = cnt_added + (cnt_rv.get('pv') or 0) + (cnt_rv.get('pr') or 0) + cnt_dep | 312 | total_changed = cnt_added + (cnt_rv.get('pv') or 0) + (cnt_rv.get('pr') or 0) + cnt_dep |
| 321 | 313 | ||
| 322 | print("\n=== Summary: (%s changed, %s unchanged)" % (total_changed, cnt_unchanged)) | 314 | print("\n=== Summary: (%s changed, %s unchanged)" % (total_changed, cnt_unchanged)) |
| 323 | if verbose: | 315 | if args.verbose: |
| 324 | print("Newly added: %s\nDependencies changed: %s\n" % \ | 316 | print("Newly added: %s\nDependencies changed: %s\n" % \ |
| 325 | (cnt_added, cnt_dep)) | 317 | (cnt_added, cnt_dep)) |
| 326 | else: | 318 | else: |
