summaryrefslogtreecommitdiffstats
path: root/cli/src/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'cli/src/input.c')
-rw-r--r--cli/src/input.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/cli/src/input.c b/cli/src/input.c
index e762fbd1385..2c67b354d4c 100644
--- a/cli/src/input.c
+++ b/cli/src/input.c
@@ -41,7 +41,11 @@ cli_batch (void *d)
state = d;
- ret = cli_cmd_process (state, state->argc, state->argv);
+ if (state->mode == GLUSTER_MODE_SCRIPT)
+ ret = cli_cmd_process (state, state->argc - 2, state->argv + 2);
+ else
+ ret = cli_cmd_process (state, state->argc, state->argv);
+
gf_log ("", GF_LOG_NORMAL, "Exiting with: %d", ret);
exit (ret);
@@ -82,8 +86,22 @@ int
cli_input_init (struct cli_state *state)
{
int ret = 0;
+ gf_boolean_t is_batch = _gf_false;
+
+ if (1 < state->argc) {
+ if (!strcmp ("mode", state->argv[0]) &&
+ !strcmp ("script", state->argv[1])) {
+ state->mode = GLUSTER_MODE_SCRIPT;
+ if (2 < state->argc)
+ is_batch = _gf_true;
+ } else {
+ is_batch = _gf_true;
+ }
+ } else if (1 == state->argc) {
+ is_batch = _gf_true;
+ }
- if (state->argc) {
+ if (is_batch) {
ret = pthread_create (&state->input, NULL, cli_batch, state);
return ret;
}