From bc69a8d058f5bcdb75e062df57a6ccd23243d1e0 Mon Sep 17 00:00:00 2001 From: Aleksei Alyaev Date: Thu, 23 Dec 2021 11:48:22 +0300 Subject: [PATCH] LU-8621 utils: cmd help to stdout or short cmd error - Changed to print command help to stdout - Changed to output short error message for an unrecognized command Test-Parameters: trivial Signed-off-by: Aleksei Alyaev Change-Id: I67616ddb576e3347a2da130b3a731a6bf8730185 Reviewed-on: https://review.whamcloud.com/47162 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Jian Yu Reviewed-by: Emoly Liu Reviewed-by: Oleg Drokin --- libcfs/libcfs/util/parser.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/libcfs/libcfs/util/parser.c b/libcfs/libcfs/util/parser.c index 95de735..be97809 100644 --- a/libcfs/libcfs/util/parser.c +++ b/libcfs/libcfs/util/parser.c @@ -117,14 +117,16 @@ int Parser_execarg(int argc, char **argv, command_t cmds[]) if (cmd && cmd->pc_func) { int rc = cmd->pc_func(argc, argv); - if (rc == CMD_HELP) - fprintf(stderr, "%s\n", cmd->pc_help); + if (rc == CMD_HELP) { + fprintf(stdout, "%s\n", cmd->pc_help); + fflush(stdout); + } return rc; } - printf("Try interactive use without arguments or use one of:\n"); - for (cmd = cmds; cmd->pc_name; cmd++) - printf("\"%s\"\n", cmd->pc_name); - printf("as argument.\n"); + fprintf(stderr, + "%s: '%s' is not a valid command. See '%s --list-commands'.\n", + program_invocation_short_name, argv[0], + program_invocation_short_name); return -1; } @@ -296,8 +298,10 @@ static int execute_line(char *line) i = line2args(line, argv, MAXARGS); rc = cmd->pc_func(i, argv); - if (rc == CMD_HELP) - fprintf(stderr, "%s\n", cmd->pc_help); + if (rc == CMD_HELP) { + fprintf(stdout, "%s\n", cmd->pc_help); + fflush(stdout); + } break; } @@ -464,8 +468,8 @@ void Parser_qhelp(int argc, char *argv[]) program_invocation_short_name); printf("Without any parameters, interactive mode is invoked\n"); - printf("Try '%s help ' or '%s --list-commands' for more information\n", - program_invocation_short_name, program_invocation_short_name); + printf("Try '%s help ', or '%s --list-commands' for a list of commands.\n", + program_invocation_short_name, program_invocation_short_name); } int Parser_help(int argc, char **argv) -- 1.8.3.1