From 50e4c280f0661f3ef837d2c3beb5fcc100202324 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Wed, 13 Jul 2022 11:29:02 +0900 Subject: [PATCH] createuser: Cleanup and fix internal option ordering This utility supports 23 options that are not really ordered in the code, making the addition of new things more complicated than necessary. This cleanup is in preparation for a patch to add even more options. Discussion: https://postgr.es/m/69a9851035cf0f0477bcc5d742b031a3@oss.nttdata.com --- src/bin/scripts/createuser.c | 98 ++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c index bfba0d09d1..f31d82f24c 100644 --- a/src/bin/scripts/createuser.c +++ b/src/bin/scripts/createuser.c @@ -28,29 +28,29 @@ int main(int argc, char *argv[]) { static struct option long_options[] = { - {"host", required_argument, NULL, 'h'}, - {"port", required_argument, NULL, 'p'}, - {"username", required_argument, NULL, 'U'}, - {"role", required_argument, NULL, 'g'}, - {"no-password", no_argument, NULL, 'w'}, - {"password", no_argument, NULL, 'W'}, - {"echo", no_argument, NULL, 'e'}, + {"connection-limit", required_argument, NULL, 'c'}, {"createdb", no_argument, NULL, 'd'}, {"no-createdb", no_argument, NULL, 'D'}, - {"superuser", no_argument, NULL, 's'}, - {"no-superuser", no_argument, NULL, 'S'}, - {"createrole", no_argument, NULL, 'r'}, - {"no-createrole", no_argument, NULL, 'R'}, + {"echo", no_argument, NULL, 'e'}, + {"encrypted", no_argument, NULL, 'E'}, + {"role", required_argument, NULL, 'g'}, + {"host", required_argument, NULL, 'h'}, {"inherit", no_argument, NULL, 'i'}, {"no-inherit", no_argument, NULL, 'I'}, {"login", no_argument, NULL, 'l'}, {"no-login", no_argument, NULL, 'L'}, + {"port", required_argument, NULL, 'p'}, + {"pwprompt", no_argument, NULL, 'P'}, + {"createrole", no_argument, NULL, 'r'}, + {"no-createrole", no_argument, NULL, 'R'}, + {"superuser", no_argument, NULL, 's'}, + {"no-superuser", no_argument, NULL, 'S'}, + {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, + {"password", no_argument, NULL, 'W'}, {"replication", no_argument, NULL, 1}, {"no-replication", no_argument, NULL, 2}, {"interactive", no_argument, NULL, 3}, - {"connection-limit", required_argument, NULL, 'c'}, - {"pwprompt", no_argument, NULL, 'P'}, - {"encrypted", no_argument, NULL, 'E'}, {NULL, 0, NULL, 0} }; @@ -89,31 +89,15 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "createuser", help); - while ((c = getopt_long(argc, argv, "h:p:U:g:wWedDsSrRiIlLc:PE", + while ((c = getopt_long(argc, argv, "c:dDeEg:h:iIlLp:PrRsSU:wW", long_options, &optindex)) != -1) { switch (c) { - case 'h': - host = pg_strdup(optarg); - break; - case 'p': - port = pg_strdup(optarg); - break; - case 'U': - username = pg_strdup(optarg); - break; - case 'g': - simple_string_list_append(&roles, optarg); - break; - case 'w': - prompt_password = TRI_NO; - break; - case 'W': - prompt_password = TRI_YES; - break; - case 'e': - echo = true; + case 'c': + if (!option_parse_int(optarg, "-c/--connection-limit", + -1, INT_MAX, &conn_limit)) + exit(1); break; case 'd': createdb = TRI_YES; @@ -121,17 +105,17 @@ main(int argc, char *argv[]) case 'D': createdb = TRI_NO; break; - case 's': - superuser = TRI_YES; + case 'e': + echo = true; break; - case 'S': - superuser = TRI_NO; + case 'E': + /* no-op, accepted for backward compatibility */ break; - case 'r': - createrole = TRI_YES; + case 'g': + simple_string_list_append(&roles, optarg); break; - case 'R': - createrole = TRI_NO; + case 'h': + host = pg_strdup(optarg); break; case 'i': inherit = TRI_YES; @@ -145,16 +129,32 @@ main(int argc, char *argv[]) case 'L': login = TRI_NO; break; - case 'c': - if (!option_parse_int(optarg, "-c/--connection-limit", - -1, INT_MAX, &conn_limit)) - exit(1); + case 'p': + port = pg_strdup(optarg); break; case 'P': pwprompt = true; break; - case 'E': - /* no-op, accepted for backward compatibility */ + case 'r': + createrole = TRI_YES; + break; + case 'R': + createrole = TRI_NO; + break; + case 's': + superuser = TRI_YES; + break; + case 'S': + superuser = TRI_NO; + break; + case 'U': + username = pg_strdup(optarg); + break; + case 'w': + prompt_password = TRI_NO; + break; + case 'W': + prompt_password = TRI_YES; break; case 1: replication = TRI_YES;