From 2dd979f4cc03a7f0090f833d7aada72a6a1c6678 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Thu, 26 Oct 2017 20:47:14 +0200 Subject: cli: Support non-strict verification mode --- gemato/cli.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gemato/cli.py b/gemato/cli.py index 5c1885b..513ed92 100644 --- a/gemato/cli.py +++ b/gemato/cli.py @@ -13,6 +13,11 @@ import gemato.find_top_level import gemato.recursiveloader +def verify_warning(e): + logging.warning(str(e)) + return True + + def do_verify(args): for p in args.paths: tlm = gemato.find_top_level.find_top_level_manifest(p) @@ -20,10 +25,14 @@ def do_verify(args): logging.error('Top-level Manifest not found in {}'.format(p)) return 1 + kwargs = {} + if not args.strict: + kwargs['warn_handler'] = verify_warning + start = timeit.default_timer() m = gemato.recursiveloader.ManifestRecursiveLoader(tlm) try: - m.assert_directory_verifies() + m.assert_directory_verifies(**kwargs) except gemato.exceptions.ManifestMismatch as e: logging.error(str(e)) return 1 @@ -41,6 +50,9 @@ def main(argv): verify = subp.add_parser('verify') verify.add_argument('paths', nargs='*', default=['.'], help='Paths to verify (defaults to "." if none specified)') + verify.add_argument('-S', '--no-strict', action='store_false', + dest='strict', + help='Do not fail on non-strict Manifest issues (MISC/OPTIONAL entries)') verify.set_defaults(func=do_verify) vals = argp.parse_args(argv[1:]) -- cgit v1.2.3