createuser: Cleanup and fix internal option ordering
authorMichael Paquier <michael@paquier.xyz>
Wed, 13 Jul 2022 02:29:02 +0000 (11:29 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 13 Jul 2022 02:29:02 +0000 (11:29 +0900)
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

index bfba0d09d1174bf47dec2748a51f9d3a9f9bbb66..f31d82f24c0b9aefaba5c47ded46a2206d761291 100644 (file)
@@ -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;