The "-h" parameter of the xenstore-* programs is explicitly meant to show the usage information of the programs. This use case should not result in an error of the program's exit code.
Signed-off-by: Juergen Gross <[email protected]> --- V2: - new patch --- tools/xs-clients/xenstore_client.c | 40 +++++++++++++++--------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tools/xs-clients/xenstore_client.c b/tools/xs-clients/xenstore_client.c index a104cf6487..1794451d43 100644 --- a/tools/xs-clients/xenstore_client.c +++ b/tools/xs-clients/xenstore_client.c @@ -214,37 +214,37 @@ output_raw(const char *data, int len) } static void -usage(enum mode mode, int incl_mode, const char *progname) +usage(int eval, enum mode mode, int incl_mode, const char *progname) { const char *mstr = NULL; switch (mode) { case MODE_unknown: - errx(1, "Usage: %s <mode> [-h] [...]", progname); + errx(eval, "Usage: %s <mode> [-h] [...]", progname); case MODE_read: mstr = incl_mode ? "read " : ""; - errx(1, "Usage: %s %s[-h] [-p] [-R] key [...]", progname, mstr); + errx(eval, "Usage: %s %s[-h] [-p] [-R] key [...]", progname, mstr); case MODE_write: mstr = incl_mode ? "write " : ""; - errx(1, "Usage: %s %s[-h] [-R] key value [...]", progname, mstr); + errx(eval, "Usage: %s %s[-h] [-R] key value [...]", progname, mstr); case MODE_rm: mstr = incl_mode ? "rm " : ""; - errx(1, "Usage: %s %s[-h] [-t] key [...]", progname, mstr); + errx(eval, "Usage: %s %s[-h] [-t] key [...]", progname, mstr); case MODE_exists: mstr = incl_mode ? "exists " : ""; /* fallthrough */ case MODE_list: mstr = mstr ? : incl_mode ? "list " : ""; - errx(1, "Usage: %s %s[-h] [-p] key [...]", progname, mstr); + errx(eval, "Usage: %s %s[-h] [-p] key [...]", progname, mstr); case MODE_ls: mstr = mstr ? : incl_mode ? "ls " : ""; - errx(1, "Usage: %s %s[-h] [-f] [-p] [path]", progname, mstr); + errx(eval, "Usage: %s %s[-h] [-f] [-p] [path]", progname, mstr); case MODE_chmod: mstr = incl_mode ? "chmod " : ""; - errx(1, "Usage: %s %s[-h] [-u] [-r] key <mode [modes...]>", progname, mstr); + errx(eval, "Usage: %s %s[-h] [-u] [-r] key <mode [modes...]>", progname, mstr); case MODE_watch: mstr = incl_mode ? "watch " : ""; - errx(1, "Usage: %s %s[-h] [-n NR] key", progname, mstr); + errx(eval, "Usage: %s %s[-h] [-n NR] key", progname, mstr); } } @@ -685,7 +685,7 @@ main(int argc, char **argv) command = command + strlen("xenstore-"); } else if (argc < 2) - usage(MODE_unknown, 0, argv[0]); + usage(1, MODE_unknown, 0, argv[0]); else { command = argv[1]; @@ -715,7 +715,7 @@ main(int argc, char **argv) switch (c) { case 'h': - usage(mode, switch_argv, argv[0]); + usage(0, mode, switch_argv, argv[0]); /* NOTREACHED */ case 'f': if ( mode == MODE_ls ) { @@ -723,44 +723,44 @@ main(int argc, char **argv) desired_width = 0; show_whole_path = 1; } else { - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); } break; case 'p': if ( mode == MODE_read || mode == MODE_list || mode == MODE_ls ) prefix = 1; else - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); break; case 't': if ( mode == MODE_rm ) tidy = 1; else - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); break; case 'u': if ( mode == MODE_chmod ) upto = 1; else - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); break; case 'r': if ( mode == MODE_chmod ) recurse = 1; else - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); break; case 'n': if ( mode == MODE_watch ) nr_watches = atoi(optarg); else - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); break; case 'R': if ( mode == MODE_read || mode == MODE_write ) raw = 1; else - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); break; } } @@ -770,13 +770,13 @@ main(int argc, char **argv) break; case MODE_write: if ((argc - switch_argv - optind) % 2 == 1) { - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); /* NOTREACHED */ } /* DROP-THRU */ default: if (optind == argc - switch_argv) { - usage(mode, switch_argv, argv[0]); + usage(1, mode, switch_argv, argv[0]); /* NOTREACHED */ } } -- 2.53.0
