/* function to parse command line options and check for some usage errors. */ void get_opts(int argc, char **argv, struct options * my_opts) { int c; const char *progname; progname = get_progname(argv[0]); /* set the defaults */ my_opts->quiet = false; my_opts->systables = false; my_opts->indexes = false; my_opts->nodb = false; my_opts->extended = false; my_opts->tablespaces = false; my_opts->dbname = NULL; my_opts->hostname = NULL; my_opts->port = NULL; my_opts->username = NULL; my_opts->progname = progname; if (argc > 1) { if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0) { help(progname); exit(0); } if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0) { puts("oid2name (PostgreSQL) " PG_VERSION); exit(0); } } /* get opts */ while ((c = getopt(argc, argv, "H:p:U:d:t:o:f:qSxish")) != -1) { switch (c) { /* specify the database */ case 'd': my_opts->dbname = mystrdup(optarg); break; /* specify one tablename to show */ case 't': add_one_elt(optarg, my_opts->tables); break; /* specify one Oid to show */ case 'o': add_one_elt(optarg, my_opts->oids); break; /* specify one filenode to show */ case 'f': add_one_elt(optarg, my_opts->filenodes); break; /* don't show headers */ case 'q': my_opts->quiet = true; break; /* host to connect to */ case 'H': my_opts->hostname = mystrdup(optarg); break; /* port to connect to on remote host */ case 'p': my_opts->port = mystrdup(optarg); break; /* username */ case 'U': my_opts->username = mystrdup(optarg); break; /* display system tables */ case 'S': my_opts->systables = true; break; /* also display indexes */ case 'i': my_opts->indexes = true; break; /* display extra columns */ case 'x': my_opts->extended = true; break; /* dump tablespaces only */ case 's': my_opts->tablespaces = true; break; case 'h': help(progname); exit(0); break; default: fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); exit(1); } } }
/* function to parse command line options and check for some usage errors. */ void get_opts(int argc, char **argv, struct options * my_opts) { int c; /* set the defaults */ my_opts->quiet = false; my_opts->systables = false; my_opts->indexes = false; my_opts->nodb = false; my_opts->extended = false; my_opts->tablespaces = false; my_opts->dbname = NULL; my_opts->hostname = NULL; my_opts->port = NULL; my_opts->username = NULL; my_opts->password = NULL; /* get opts */ while ((c = getopt(argc, argv, "H:p:U:P:d:t:o:f:qSxish?")) != -1) { switch (c) { /* specify the database */ case 'd': my_opts->dbname = mystrdup(optarg); break; /* specify one tablename to show */ case 't': add_one_elt(optarg, my_opts->tables); break; /* specify one Oid to show */ case 'o': add_one_elt(optarg, my_opts->oids); break; /* specify one filenode to show */ case 'f': add_one_elt(optarg, my_opts->filenodes); break; /* don't show headers */ case 'q': my_opts->quiet = true; break; /* host to connect to */ case 'H': my_opts->hostname = mystrdup(optarg); break; /* port to connect to on remote host */ case 'p': my_opts->port = mystrdup(optarg); break; /* username */ case 'U': my_opts->username = mystrdup(optarg); break; /* password */ case 'P': my_opts->password = mystrdup(optarg); break; /* display system tables */ case 'S': my_opts->systables = true; break; /* also display indexes */ case 'i': my_opts->indexes = true; break; /* display extra columns */ case 'x': my_opts->extended = true; break; /* dump tablespaces only */ case 's': my_opts->tablespaces = true; break; /* help! (ugly in code for easier editing) */ case '?': case 'h': fprintf(stderr, "Usage: oid2name [-s|-d database] [-S][-i][-q][-x] [-t table|-o oid|-f file] ...\n" " default action show all database Oids\n" " -d database database to connect to\n" " -s show all tablespaces\n" " -S show system objects too\n" " -i show indexes and sequences too\n" " -x extended (show additional columns)\n" " -q quiet (don't show headers)\n" " -t <table> show info for table named <table>\n" " -o <oid> show info for table with Oid <oid>\n" " -f <filenode> show info for table with filenode <filenode>\n" " -H host connect to remote host\n" " -p port host port to connect to\n" " -U username username to connect with\n" " -P password password for username\n" " (see also $PGPASSWORD and ~/.pgpass)\n" ); exit(1); break; } } }