Subject: [RFC PATCH v3 02/13] walken: add usage to enable -h

From: Emily Shaffer <[email-masked]>
Date: Mon, 1 Jul 2019 13:20:03 -0700

It's expected that Git commands support '-h' in order to provide a
consistent user experience (and this expectation is enforced by the
test suite). '-h' is captured by parse_options() by default; in order to
support this flag, we add a short usage text to walken.c and invoke
parse_options().

With this change, we can now add cmd_walken to the builtins set and
expect tests to pass, so we'll do so - cmd_walken is now open for
business.

Signed-off-by: Emily Shaffer <[email-masked]>
Change-Id: I2919dc1efadb82acb335617ea24371c84b03bbce
---
 builtin/walken.c | 21 +++++++++++++++++++++
 git.c            |  1 +
 2 files changed, 22 insertions(+)

diff --git a/builtin/walken.c b/builtin/walken.c
index db3ca50b04..dd55f3b350 100644
--- a/builtin/walken.c
+++ b/builtin/walken.c
@@ -5,9 +5,30 @@
  */
 
 #include "builtin.h"
+#include "parse-options.h"
+
 
 int cmd_walken(int argc, const char **argv, const char *prefix)
 {
+	/*
+	 * All builtins are expected to provide a usage to provide a consistent user
+	 * experience.
+	 */
+	const char * const walken_usage[] = {
+		N_("git walken"),
+		NULL,
+	};
+
+	struct option options[] = {
+		OPT_END()
+	};
+
+	/*
+	 * parse_options() handles showing usage if incorrect options are
+	 * provided, or if '-h' is passed.
+	 */
+	argc = parse_options(argc, argv, prefix, options, walken_usage, 0);
+
 	/*
 	 * This line is "human-readable" and we are writing a plumbing command,
 	 * so we localize it and use the trace library to print only when
diff --git a/git.c b/git.c
index c2eec470c9..2a7fb9714f 100644
--- a/git.c
+++ b/git.c
@@ -601,6 +601,7 @@ static struct cmd_struct commands[] = {
 	{ "verify-pack", cmd_verify_pack },
 	{ "verify-tag", cmd_verify_tag, RUN_SETUP },
 	{ "version", cmd_version },
+	{ "walken", cmd_walken, RUN_SETUP },
 	{ "whatchanged", cmd_whatchanged, RUN_SETUP },
 	{ "worktree", cmd_worktree, RUN_SETUP | NO_PARSEOPT },
 	{ "write-tree", cmd_write_tree, RUN_SETUP },
-- 
2.22.0.410.gd8fdbe21b5-goog