Cluster Manager: --cluster options can now be placed everywhere

This commit is contained in:
artix 2018-05-07 17:31:34 +02:00
parent 35b3a8e1ee
commit 3312de067c

View File

@ -1293,8 +1293,8 @@ static int parseOptions(int argc, char **argv) {
if (CLUSTER_MANAGER_MODE()) usage(); if (CLUSTER_MANAGER_MODE()) usage();
char *cmd = argv[++i]; char *cmd = argv[++i];
int j = i; int j = i;
for (; j < argc; j++) if (argv[j][0] == '-') break; while (j < argc && argv[j][0] != '-') j++;
j--; if (j > i) j--;
createClusterManagerCommand(cmd, j - i, argv + i + 1); createClusterManagerCommand(cmd, j - i, argv + i + 1);
i = j; i = j;
} else if (!strcmp(argv[i],"--cluster") && lastarg) { } else if (!strcmp(argv[i],"--cluster") && lastarg) {
@ -1351,6 +1351,15 @@ static int parseOptions(int argc, char **argv) {
printf("redis-cli %s\n", version); printf("redis-cli %s\n", version);
sdsfree(version); sdsfree(version);
exit(0); exit(0);
} else if (CLUSTER_MANAGER_MODE() && argv[i][0] != '-') {
if (config.cluster_manager_command.argc == 0) {
int j = i + 1;
while (j < argc && argv[j][0] != '-') j++;
int cmd_argc = j - i;
config.cluster_manager_command.argc = cmd_argc;
config.cluster_manager_command.argv = argv + i;
if (cmd_argc > 1) i = j - 1;
}
} else { } else {
if (argv[i][0] == '-') { if (argv[i][0] == '-') {
fprintf(stderr, fprintf(stderr,