Skip to content

Commit b10fdf1

Browse files
committed
Update command line parse
1 parent 0e14954 commit b10fdf1

File tree

1 file changed

+39
-34
lines changed

1 file changed

+39
-34
lines changed

src/pg_probackup.c

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -241,44 +241,49 @@ main(int argc, char *argv[])
241241
command[len] = '\0';
242242

243243
/* Parse command line arguments */
244-
pgut_getopt(argc, argv, options);
245-
246-
/* Process a command */
247-
if (optind < argc)
244+
optind = 1;
245+
/* process command-line options */
246+
while (optind < argc)
248247
{
249-
if (strcmp(argv[optind], "archive-push") == 0)
250-
backup_subcmd = ARCHIVE_PUSH_CMD;
251-
else if (strcmp(argv[optind], "archive-get") == 0)
252-
backup_subcmd = ARCHIVE_GET_CMD;
253-
else if (strcmp(argv[optind], "add-instance") == 0)
254-
backup_subcmd = ADD_INSTANCE_CMD;
255-
else if (strcmp(argv[optind], "del-instance") == 0)
256-
backup_subcmd = DELETE_INSTANCE_CMD;
257-
else if (strcmp(argv[optind], "init") == 0)
258-
backup_subcmd = INIT_CMD;
259-
else if (strcmp(argv[optind], "backup") == 0)
260-
backup_subcmd = BACKUP_CMD;
261-
else if (strcmp(argv[optind], "restore") == 0)
262-
backup_subcmd = RESTORE_CMD;
263-
else if (strcmp(argv[optind], "validate") == 0)
264-
backup_subcmd = VALIDATE_CMD;
265-
else if (strcmp(argv[optind], "show") == 0)
266-
backup_subcmd = SHOW_CMD;
267-
else if (strcmp(argv[optind], "delete") == 0)
268-
backup_subcmd = DELETE_CMD;
269-
else if (strcmp(argv[optind], "set-config") == 0)
270-
backup_subcmd = SET_CONFIG_CMD;
271-
else if (strcmp(argv[optind], "show-config") == 0)
272-
backup_subcmd = SHOW_CONFIG_CMD;
273-
else if (strcmp(argv[optind], "help") == 0)
248+
pgut_getopt(argc, argv, options);
249+
/* Process a command */
250+
if (optind < argc)
274251
{
252+
if (strcmp(argv[optind], "archive-push") == 0)
253+
backup_subcmd = ARCHIVE_PUSH_CMD;
254+
else if (strcmp(argv[optind], "archive-get") == 0)
255+
backup_subcmd = ARCHIVE_GET_CMD;
256+
else if (strcmp(argv[optind], "add-instance") == 0)
257+
backup_subcmd = ADD_INSTANCE_CMD;
258+
else if (strcmp(argv[optind], "del-instance") == 0)
259+
backup_subcmd = DELETE_INSTANCE_CMD;
260+
else if (strcmp(argv[optind], "init") == 0)
261+
backup_subcmd = INIT_CMD;
262+
else if (strcmp(argv[optind], "backup") == 0)
263+
backup_subcmd = BACKUP_CMD;
264+
else if (strcmp(argv[optind], "restore") == 0)
265+
backup_subcmd = RESTORE_CMD;
266+
else if (strcmp(argv[optind], "validate") == 0)
267+
backup_subcmd = VALIDATE_CMD;
268+
else if (strcmp(argv[optind], "show") == 0)
269+
backup_subcmd = SHOW_CMD;
270+
else if (strcmp(argv[optind], "delete") == 0)
271+
backup_subcmd = DELETE_CMD;
272+
else if (strcmp(argv[optind], "set-config") == 0)
273+
backup_subcmd = SET_CONFIG_CMD;
274+
else if (strcmp(argv[optind], "show-config") == 0)
275+
backup_subcmd = SHOW_CONFIG_CMD;
276+
else if (strcmp(argv[optind], "help") == 0)
277+
{
278+
optind++;
279+
help_opt = true;
280+
}
281+
else if (strcmp(argv[optind], "version") == 0)
282+
version_opt = true;
283+
else
284+
elog(ERROR, "Unknown subcommand \"%s\"", argv[optind]);
275285
optind++;
276-
help_opt = true;
277286
}
278-
else if (strcmp(argv[optind], "version") == 0)
279-
version_opt = true;
280-
else
281-
elog(ERROR, "Unknown subcommand \"%s\"", argv[optind]);
282287
}
283288

284289
if (help_opt)

0 commit comments

Comments
 (0)