Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(778)

Unified Diff: recipes.py

Issue 2848443003: [recipes.py] add missing helpstrings, merge test subcommands into main parser. (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « recipe_engine/test.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: recipes.py
diff --git a/recipes.py b/recipes.py
index 8eb246024876f3e733cada7a00f4e9ca6319146b..f19e14a04bbcf523bf702e3ee2c240e8295442eb 100755
--- a/recipes.py
+++ b/recipes.py
@@ -37,7 +37,41 @@ from recipe_engine import fetch, lint_test, bundle, depgraph, autoroll
from recipe_engine import remote, refs, doc, test, run
+# Each of these subcommands has a method:
+#
+# def add_subparsers(argparse._SubParsersAction): ...
+#
+# which is expected to add a subparser by calling .add_parser on it. In
+# addition, the add_subparsers method should call .set_defaults on the created
+# sub-parser, and set the following values:
+# func (fn(package_deps, args)) - The function called if the sub command is
+# invoked.
+# postprocess_func (fn(parser, args)) - A validation/normalization function
+# which is called if the sub command is invoked. This function can
+# check/adjust the parsed args, calling parser.error if a problem is
+# encountered. This function is optional.
+# bare_command (bool) - This sub command's func will be called before parsing
+# package_deps. This is only used for the `remote` subcommand. See the
+# comment in add_common_args for why.
+#
+# Example:
+#
+# def add_subparsers(parser):
+# sub = parser.add_parser("subcommand", help="a cool subcommand")
+# sub.add_argument("--cool_arg", help="it's gotta be cool")
+#
+# def postprocess_args(parser, args):
+# if "cool" not in args.cool_arg:
+# parser.error("your cool_arg is not cool!")
+#
+# sub.set_defaults(func=main)
+#
+# def main(package_deps, args):
+# print args.cool_arg
_SUBCOMMANDS = [
+ run,
+ test,
+
autoroll,
bundle,
depgraph,
@@ -46,8 +80,6 @@ _SUBCOMMANDS = [
lint_test,
refs,
remote,
- run,
- test,
]
@@ -150,7 +182,7 @@ def add_common_args(parser):
def main():
parser = argparse.ArgumentParser(
- description='Interact with the recipe system.')
+ description='Interact with the recipe system.')
common_postprocess_func = add_common_args(parser)
« no previous file with comments | « recipe_engine/test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698