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 <emilyshaf...@google.com>
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

Reply via email to