]> granicus.if.org Git - postgresql/commitdiff
Add --version and --help options to "postgres".
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 28 Oct 2000 01:07:00 +0000 (01:07 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Sat, 28 Oct 2000 01:07:00 +0000 (01:07 +0000)
src/backend/tcop/postgres.c

index 5b65e42172e7c8aabd59af956ba5f098ef2dd5bf..8fb2d1a2af4a254bd91e65010e708e0ef9e8a5f9 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.182 2000/10/26 17:31:35 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.183 2000/10/28 01:07:00 petere Exp $
  *
  * NOTES
  *       this is the "main" module of the postgres backend and
@@ -1111,7 +1111,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
 
        optind = 1;                                     /* reset after postmaster's usage */
 
-       while ((flag = getopt(argc, argv,  "A:B:CD:d:Eef:FiLNOPo:p:S:st:v:W:x:-:")) != EOF)
+       while ((flag = getopt(argc, argv,  "A:B:CD:d:Eef:FiLNOPo:p:S:st:v:W:x:-:?")) != EOF)
                switch (flag)
                {
                        case 'A':
@@ -1385,6 +1385,16 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
                                char *name, *value;
 
                                ParseLongOption(optarg, &name, &value);
+                               if (strcmp(name, "help")==0)
+                               {
+                                       usage(argv[0]);
+                                       exit(0);
+                               }
+                               else if (strcmp(name, "version")==0)
+                               {
+                                       puts("postgres (PostgreSQL) " PG_VERSION);
+                                       exit(0);
+                               }
                                if (!value)
                                        elog(ERROR, "--%s requires argument", optarg);
 
@@ -1395,15 +1405,23 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
                                break;
                        }
 
+                       case '?':
+                               if (strcmp(argv[optind - 1], "-?") == 0)
+                               {
+                                       usage(argv[0]);
+                                       exit(0);
+                               }
+                               else
+                                       errs++;
+                               break;
+
                        default:
-                               /* ----------------
-                                *      default: bad command line option
-                                * ----------------
-                                */
+                               /* shouldn't get here */
                                errs++;
                                break;
                }
 
+
        if (Show_query_stats &&
                (Show_parser_stats || Show_planner_stats || Show_executor_stats))
        {
@@ -1470,8 +1488,8 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
                /* noninteractive case: nothing should be left after switches */
                if (errs || argc != optind || DBName == NULL)
                {
-                       usage(argv[0]);
-                       proc_exit(0);
+                       fprintf(stderr, "%s: invalid command line arguments\nTry -? for help.\n", argv[0]);
+                       proc_exit(1);
                }
                pq_init();                              /* initialize libpq at backend startup */
                whereToSendOutput = Remote;
@@ -1483,8 +1501,8 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
                whereToSendOutput = Debug;
                if (errs || argc - optind > 1)
                {
-                       usage(argv[0]);
-                       proc_exit(0);
+                       fprintf(stderr, "%s: invalid command line arguments\nTry -? for help.\n", argv[0]);
+                       proc_exit(1);
                }
                else if (argc - optind == 1)
                        DBName = argv[optind];
@@ -1492,7 +1510,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
                {
                        fprintf(stderr, "%s: user name undefined and no database specified\n",
                                        argv[0]);
-                       proc_exit(0);
+                       proc_exit(1);
                }
 
                /*
@@ -1618,7 +1636,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
        if (!IsUnderPostmaster)
        {
                puts("\nPOSTGRES backend interactive interface ");
-               puts("$Revision: 1.182 $ $Date: 2000/10/26 17:31:35 $\n");
+               puts("$Revision: 1.183 $ $Date: 2000/10/28 01:07:00 $\n");
        }
 
        /*