class="n">add_argument('buildstats1', metavar='BUILDSTATS1', help="'Left' buildstat") parser.add_argument('buildstats2', metavar='BUILDSTATS2', help="'Right' buildstat") args = parser.parse_args(argv) # We do not nedd/want to read all buildstats if we just want to look at the # package versions if args.ver_diff: args.multi = False # Handle defaults for the filter arguments if args.min_val is min_val_defaults: args.min_val = min_val_defaults[args.diff_attr] if args.min_absdiff is min_absdiff_defaults: args.min_absdiff = min_absdiff_defaults[args.diff_attr] return args def main(argv=None): """Script entry point""" args = parse_args(argv) if args.debug: log.setLevel(logging.DEBUG) # Validate sort fields sort_by = [] for field in args.sort_by.split(','): if field.lstrip('-') not in taskdiff_fields: log.error("Invalid sort field '%s' (must be one of: %s)" % (field, ', '.join(taskdiff_fields))) sys.exit(1) sort_by.append(field) try: bs1 = read_buildstats(args.buildstats1, args.multi) bs2 = read_buildstats(args.buildstats2, args.multi) if args.ver_diff: print_ver_diff(bs1, bs2) else: print_task_diff(bs1, bs2, args.diff_attr, args.min_val, args.min_absdiff, sort_by, args.only_tasks) except ScriptError as err: log.error(str(err)) return 1 return 0 if __name__ == "__main__": sys.exit(main())