@@ -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
@@ -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 },
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 <emilyshaffer@google.com> Change-Id: I2919dc1efadb82acb335617ea24371c84b03bbce --- builtin/walken.c | 21 +++++++++++++++++++++ git.c | 1 + 2 files changed, 22 insertions(+)