From 106998fce6e8cd57916f4f5b37f940eeafe297de Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Thu, 24 Jan 2019 11:48:44 +0100 Subject: [PATCH] examples: print available commands if no args are given --- examples/lg2.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/examples/lg2.c b/examples/lg2.c index 1f6fd8560..b3df02dbd 100644 --- a/examples/lg2.c +++ b/examples/lg2.c @@ -50,6 +50,17 @@ static int run_command(git_command_fn fn, git_repository *repo, struct args_info return !!error; } +static int usage(const char *prog) +{ + size_t i; + + fprintf(stderr, "usage: %s ...\n\nAvailable commands:\n\n", prog); + for (i = 0; i < ARRAY_SIZE(commands); i++) + fprintf(stderr, "\t%s\n", commands[i].name); + + exit(EXIT_FAILURE); +} + int main(int argc, char **argv) { struct args_info args = ARGS_INFO_INIT; @@ -58,10 +69,8 @@ int main(int argc, char **argv) int return_code = 1; size_t i; - if (argc < 2) { - fprintf(stderr, "usage: %s [repo]\n", argv[0]); - exit(EXIT_FAILURE); - } + if (argc < 2) + usage(argv[0]); git_libgit2_init(); @@ -79,6 +88,9 @@ int main(int argc, char **argv) } } + if (args.pos == args.argc) + usage(argv[0]); + if (!git_dir) git_dir = ".";