diff --git a/support/scripts/pkg-stats b/support/scripts/pkg-stats index 00ca5647ee..7e20ccc0da 100755 --- a/support/scripts/pkg-stats +++ b/support/scripts/pkg-stats @@ -1099,6 +1099,10 @@ def resolvepath(path): return os.path.abspath(os.path.expanduser(path)) +def list_str(values): + return values.split(',') + + def parse_args(): parser = argparse.ArgumentParser() output = parser.add_argument_group('output', 'Output file(s)') @@ -1115,6 +1119,9 @@ def parse_args(): help='List of packages (comma separated)') parser.add_argument('--nvd-path', dest='nvd_path', help='Path to the local NVD database', type=resolvepath) + parser.add_argument('--disable', type=list_str, + help='Features to disable, comma-separated (cve, upstream, url)', + default=[]) args = parser.parse_args() if not args.html and not args.json: parser.error('at least one of --html or --json (or both) is required') @@ -1161,13 +1168,15 @@ def __main__(): pkg.set_url() pkg.set_ignored_cves() pkg.set_developers(developers) - print("Checking URL status") - loop = asyncio.get_event_loop() - loop.run_until_complete(check_package_urls(packages)) - print("Getting latest versions ...") - loop = asyncio.get_event_loop() - loop.run_until_complete(check_package_latest_version(packages)) - if args.nvd_path: + if not "url" in args.disable: + print("Checking URL status") + loop = asyncio.get_event_loop() + loop.run_until_complete(check_package_urls(packages)) + if not "upstream" in args.disable: + print("Getting latest versions ...") + loop = asyncio.get_event_loop() + loop.run_until_complete(check_package_latest_version(packages)) + if not "cve" in args.disable and args.nvd_path: print("Checking packages CVEs") check_package_cves(args.nvd_path, packages) check_package_cpes(args.nvd_path, packages)