From 68433db9ba07267c72d169b3ed4892e052e2eae2 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Mon, 1 Oct 2012 15:06:43 +0200 Subject: cli: introduce "--" as option terminator This way it becomes possible to pass option-like arguments to cli commands. Change-Id: I8eb1a44ce5d1bfe901d2b3e7cc7bfb84bb3012c9 BUG: 815194 Signed-off-by: Csaba Henk Reviewed-on: http://review.gluster.org/4007 Tested-by: Gluster Build System Reviewed-by: Kaleb KEITHLEY Reviewed-by: Anand Avati --- cli/src/cli.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'cli') diff --git a/cli/src/cli.c b/cli/src/cli.c index 416cb50bc37..7788ce38914 100644 --- a/cli/src/cli.c +++ b/cli/src/cli.c @@ -283,11 +283,20 @@ cli_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event, return ret; } + +/* + * ret: 0: option successfully processed + * 1: signalling end of option list + * -1: unknown option or other issue + */ int cli_opt_parse (char *opt, struct cli_state *state) { char *oarg; + if (strcmp (opt, "") == 0) + return 1; + if (strcmp (opt, "version") == 0) { puts (argp_program_version); exit (0); @@ -360,6 +369,11 @@ parse_cmdline (int argc, char *argv[], struct cli_state *state) state->argc--; /* argv shifted, next check should be at i again */ i--; + if (ret == 1) { + /* end of cli options */ + ret = 0; + break; + } } } -- cgit