summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-10-26 20:47:14 +0200
committerMichał Górny <mgorny@gentoo.org>2017-10-26 21:27:51 +0200
commit2dd979f4cc03a7f0090f833d7aada72a6a1c6678 (patch)
treeb836a22de84aa16e677cdf1223b4b9042f905a63
parentb93ac6c1092458fd44732433f5a8a37b253c630c (diff)
downloadgemato-2dd979f4cc03a7f0090f833d7aada72a6a1c6678.tar.gz
cli: Support non-strict verification mode
-rw-r--r--gemato/cli.py14
1 files changed, 13 insertions, 1 deletions
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:])