cros_extract_deps: clean up cli parser a bit
This standardizes the parser usage a bit:
- Move all text to module docstring and set that as the description.
- Use nargs=* instead of parse_known_args to get optional list of pkgs.
- Freeze the parser once we're done with it.
- Rename known_args to opts.
BUG=None
TEST=`cros_extract_deps sys-libs/zlib` still works
Change-Id: I87925c776c9dcbeb66b6a8e1ba2d3f6688851e03
Reviewed-on: https://chromium-review.googlesource.com/1393870
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: LaMont Jones <lamontjones@chromium.org>
diff --git a/scripts/cros_extract_deps.py b/scripts/cros_extract_deps.py
index 82eb2b0..457748c 100644
--- a/scripts/cros_extract_deps.py
+++ b/scripts/cros_extract_deps.py
@@ -3,7 +3,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""Command to extract the dependancy tree for a given package."""
+"""Command to extract the dependancy tree for a given package.
+
+This produces JSON output for other tools to process.
+"""
from __future__ import print_function
@@ -221,9 +224,7 @@
def ParseArgs(argv):
"""Parse command line arguments."""
- parser = commandline.ArgumentParser(description="""
-This extracts the dependency tree for the specified package, and outputs it
-to stdout, in a serialized JSON format.""")
+ parser = commandline.ArgumentParser(description=__doc__)
target = parser.add_mutually_exclusive_group()
target.add_argument('--sysroot', type='path', help='Path to the sysroot.')
target.add_argument('--board', help='Board name.')
@@ -233,8 +234,10 @@
help='Output either traditional deps or CPE-only JSON.')
parser.add_argument('--output-path', default=None,
help='Write output to the given path.')
- known_args, unknown_args = parser.parse_known_args(argv)
- return (known_args, unknown_args)
+ parser.add_argument('pkgs', nargs='*')
+ opts = parser.parse_args(argv)
+ opts.Freeze()
+ return opts
def ExtractDeps(sysroot, package_list, formatting='deps'):
@@ -253,15 +256,14 @@
def main(argv):
- known_args, unknown_args = ParseArgs(argv)
+ opts = ParseArgs(argv)
- sysroot = known_args.sysroot or cros_build_lib.GetSysroot(known_args.board)
- pkgs = list(unknown_args)
- deps_list = ExtractDeps(sysroot, pkgs, known_args.format)
+ sysroot = opts.sysroot or cros_build_lib.GetSysroot(opts.board)
+ deps_list = ExtractDeps(sysroot, opts.pkgs, opts.format)
deps_output = json.dumps(deps_list, sort_keys=True, indent=2)
- if known_args.output_path:
- with open(known_args.output_path, 'w') as f:
+ if opts.output_path:
+ with open(opts.output_path, 'w') as f:
f.write(deps_output)
else:
print(deps_output)