]> granicus.if.org Git - postgresql/blob - src/bin/scripts/dropdb
Okay, that should put us back in sync. These two patches (src & doc) are
[postgresql] / src / bin / scripts / dropdb
1 #!/bin/sh
2 #-------------------------------------------------------------------------
3 #
4 # dropdb--
5 #    destroy a postgres database
6 #
7 #    this program runs psql to drop the requested database.
8 #
9 # Copyright (c) 1994, Regents of the University of California
10 #
11 #
12 # IDENTIFICATION
13 #    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.3 1999/12/07 22:41:44 momjian Exp $
14 #
15 #-------------------------------------------------------------------------
16
17 CMDNAME=`basename $0`
18
19 PSQLOPT=
20 dbname=
21 forcedel=t
22
23 # Check for echo -n vs echo \c
24
25 if echo '\c' | grep -s c >/dev/null 2>&1
26 then
27     ECHO_N="echo -n"
28     ECHO_C=""
29 else
30     ECHO_N="echo"
31     ECHO_C='\c'
32 fi
33
34
35 while [ $# -gt 0 ]
36 do
37     case "$1" in 
38         --help|-\?)
39                 usage=t
40                 break
41                 ;;
42 # options passed on to psql
43         --host|-h)
44                 PSQLOPT="$PSQLOPT -h $2"
45                 shift;;
46         -h*)
47                 PSQLOPT="$PSQLOPT $1"
48                 ;;
49         --host=*)
50                 PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
51                 ;;
52         --port|-p)
53                 PSQLOPT="$PSQLOPT -p $2"
54                 shift;;
55         -p*)
56                 PSQLOPT="$PSQLOPT $1"
57                 ;;
58         --port=*)
59                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
60                 ;;
61         --user|--username|-U)
62                 PSQLOPT="$PSQLOPT -U '$2'"
63                 shift;;
64         -U*)
65                 PSQLOPT="$PSQLOPT $1"
66                 ;;
67         --user=*)
68                 PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--user=//'`
69                 ;;
70         --username=*)
71                 PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
72                 ;;
73         --password|-W)
74                 PSQLOPT="$PSQLOPT -W"
75                 ;;
76         --echo|-e)
77                 PSQLOPT="$PSQLOPT -e"
78                 ;;
79         --quiet|-q)
80                 PSQLOPT="$PSQLOPT -o /dev/null"
81                 ;;
82 # other options
83         --interactive|-i)
84                 forcedel=f
85                 ;;
86         -*)
87                 echo "$CMDNAME: Unrecognized option: $1. Try -? for help."
88                 exit 1
89                 ;;
90          *)
91                 dbname="$1"
92                 ;;
93     esac
94     shift
95 done
96
97
98 if [ "$usage" ]; then
99         echo "Usage: $CMDNAME [-h server] [-p port] [-U username] [-i] dbname"
100         exit 0
101 fi
102
103 if [ -z "$dbname" ]; then
104         echo "$CMDNAME: Missing required argument database name. Try -? for help."
105         exit 1
106 fi
107
108
109 if [ "$forcedel" = f ]; then
110         echo "Database \"$dbname\" will be permanently deleted."
111         $ECHO_N "Are you sure? (y/n) "$ECHO_C
112         read REPLY
113
114         [ $? -eq 1 ] && exit 1
115         [ "$REPLY" != "y" -a "$REPLY" != "Y" ] && exit 0
116 fi
117
118
119 dbname=`echo $dbname | sed 's/\"/\\\"/g'`
120
121 psql $PSQLOPT -d template1 -c "DROP DATABASE \"$dbname\""
122 if [ $? -ne 0 ]; then
123         echo "$CMDNAME: Database removal failed."
124         exit 1
125 fi
126
127 exit 0