1 /*-------------------------------------------------------------------------
5 * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
6 * Portions Copyright (c) 1994, Regents of the University of California
8 * $Header: /cvsroot/pgsql/src/bin/scripts/dropuser.c,v 1.3 2003/05/27 19:36:55 petere Exp $
10 *-------------------------------------------------------------------------
13 #include "postgres_fe.h"
15 #include "dumputils.h"
18 static void help(const char *progname);
22 main(int argc, char *argv[])
24 static struct option long_options[] = {
25 {"host", required_argument, NULL, 'h'},
26 {"port", required_argument, NULL, 'p'},
27 {"username", required_argument, NULL, 'U'},
28 {"password", no_argument, NULL, 'W'},
29 {"echo", no_argument, NULL, 'e'},
30 {"quiet", no_argument, NULL, 'q'},
31 {"interactive", no_argument, NULL, 'i'},
39 char *dropuser = NULL;
42 char *username = NULL;
43 bool password = false;
46 bool interactive = false;
53 progname = get_progname(argv[0]);
55 handle_help_version_opts(argc, argv, "dropuser", help);
57 while ((c = getopt_long(argc, argv, "h:p:U:Weqi", long_options, &optindex)) != -1)
83 fprintf(stderr, _("Try '%s --help' for more information.\n"), progname);
88 switch (argc - optind)
93 dropuser = argv[optind];
96 fprintf(stderr, _("%s: too many command-line arguments (first is '%s')\n"),
97 progname, argv[optind + 1]);
98 fprintf(stderr, _("Try '%s --help' for more information.\n"), progname);
102 if (dropuser == NULL)
103 dropuser = simple_prompt("Enter name of user to drop: ", 128, true);
109 printf(_("User \"%s\" will be permanently deleted.\n"), dropuser);
110 reply = simple_prompt("Are you sure? (y/n) ", 1, true);
111 if (check_yesno_response(reply) != 1)
115 initPQExpBuffer(&sql);
116 appendPQExpBuffer(&sql, "DROP USER %s;\n", fmtId(dropuser));
118 conn = connectDatabase("template1", host, port, username, password, progname);
121 printf("%s", sql.data);
122 result = PQexec(conn, sql.data);
124 if (PQresultStatus(result) != PGRES_COMMAND_OK)
126 fprintf(stderr, _("%s: deletion of user %s failed: %s"),
127 progname, dropuser, PQerrorMessage(conn));
140 help(const char *progname)
142 printf(_("%s removes a PostgreSQL user.\n\n"), progname);
143 printf(_("Usage:\n"));
144 printf(_(" %s [OPTION]... [USERNAME]\n"), progname);
145 printf(_("\nOptions:\n"));
146 printf(_(" -e, --echo show the commands being sent to the server\n"));
147 printf(_(" -i, --interactive prompt before deleting anything\n"));
148 printf(_(" -q, --quiet don't write any messages\n"));
149 printf(_(" -h, --host=HOSTNAME database server host\n"));
150 printf(_(" -p, --port=PORT database server port\n"));
151 printf(_(" -U, --username=USERNAME user name to connect as (not the one to drop)\n"));
152 printf(_(" -W, --password prompt for password to connect\n"));
153 printf(_(" --help show this help, then exit\n"));
154 printf(_(" --version output version information, then exit\n"));
155 printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n"));