From fbcc0d69e81ce679a29182cbecc9ffa09b9cf239 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 18 Feb 2002 05:48:45 +0000 Subject: [PATCH] Fix param handling of create* admin scripts as described months ago. Properly handles default values. --- doc/src/sgml/ref/vacuumdb.sgml | 6 +++--- src/bin/scripts/createdb | 16 +++++++++++----- src/bin/scripts/createlang.sh | 7 ++++++- src/bin/scripts/createuser | 7 ++++++- src/bin/scripts/dropdb | 7 ++++++- src/bin/scripts/droplang | 7 ++++++- src/bin/scripts/dropuser | 7 ++++++- src/bin/scripts/vacuumdb | 16 ++++++++++++---- 8 files changed, 56 insertions(+), 17 deletions(-) diff --git a/doc/src/sgml/ref/vacuumdb.sgml b/doc/src/sgml/ref/vacuumdb.sgml index 57420d6f51..b1c3cab01a 100644 --- a/doc/src/sgml/ref/vacuumdb.sgml +++ b/doc/src/sgml/ref/vacuumdb.sgml @@ -1,5 +1,5 @@ @@ -23,13 +23,13 @@ PostgreSQL documentation vacuumdb connection-options - -d dbname --full-f --verbose-v --analyze-z - --table 'table + --table | -t 'table ( column [,...] )' + dbname vacuumdb connection-options diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb index 95e8c12d75..3456244046 100644 --- a/src/bin/scripts/createdb +++ b/src/bin/scripts/createdb @@ -12,7 +12,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.18 2001/09/30 22:17:51 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.19 2002/02/18 05:48:44 momjian Exp $ # #------------------------------------------------------------------------- @@ -104,11 +104,17 @@ do exit 1 ;; *) - if [ -z "$dbname" ]; then - dbname="$1" - else + dbname="$1" + if [ "$2" ] + then + shift dbcomment="$1" fi + if [ "$#" -ne 1 ]; then + echo "$CMDNAME: invalid option: $2" 1>&2 + echo "Try '$CMDNAME --help' for more information." 1>&2 + exit 1 + fi ;; esac shift @@ -118,7 +124,7 @@ if [ "$usage" ]; then echo "$CMDNAME creates a PostgreSQL database." echo echo "Usage:" - echo " $CMDNAME [options] dbname [description]" + echo " $CMDNAME [options] [dbname] [description]" echo echo "Options:" echo " -D, --location=PATH Alternative place to store the database" diff --git a/src/bin/scripts/createlang.sh b/src/bin/scripts/createlang.sh index 881257157b..5034f65cbe 100644 --- a/src/bin/scripts/createlang.sh +++ b/src/bin/scripts/createlang.sh @@ -7,7 +7,7 @@ # Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California # -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.32 2002/01/03 05:30:04 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.33 2002/02/18 05:48:44 momjian Exp $ # #------------------------------------------------------------------------- @@ -116,6 +116,11 @@ do fi else dbname="$1" fi + if [ "$#" -ne 1 ]; then + echo "$CMDNAME: invalid option: $2" 1>&2 + echo "Try '$CMDNAME --help' for more information." 1>&2 + exit 1 + fi ;; esac shift diff --git a/src/bin/scripts/createuser b/src/bin/scripts/createuser index fa20aa101c..02e97c58c4 100644 --- a/src/bin/scripts/createuser +++ b/src/bin/scripts/createuser @@ -9,7 +9,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.22 2001/09/30 22:17:51 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.23 2002/02/18 05:48:44 momjian Exp $ # # Note - this should NOT be setuid. # @@ -123,6 +123,11 @@ do ;; *) NewUser="$1" + if [ "$#" -ne 1 ]; then + echo "$CMDNAME: invalid option: $2" 1>&2 + echo "Try '$CMDNAME --help' for more information." 1>&2 + exit 1 + fi ;; esac shift; diff --git a/src/bin/scripts/dropdb b/src/bin/scripts/dropdb index 75ad3cea76..42ff00a0a1 100644 --- a/src/bin/scripts/dropdb +++ b/src/bin/scripts/dropdb @@ -11,7 +11,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.13 2001/09/30 22:17:51 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.14 2002/02/18 05:48:44 momjian Exp $ # #------------------------------------------------------------------------- @@ -89,6 +89,11 @@ do ;; *) dbname="$1" + if [ "$#" -ne 1 ]; then + echo "$CMDNAME: invalid option: $2" 1>&2 + echo "Try '$CMDNAME --help' for more information." 1>&2 + exit 1 + fi ;; esac shift diff --git a/src/bin/scripts/droplang b/src/bin/scripts/droplang index b56d73ec35..579c570cf7 100644 --- a/src/bin/scripts/droplang +++ b/src/bin/scripts/droplang @@ -7,7 +7,7 @@ # Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California # -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.20 2002/01/03 08:53:00 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.21 2002/02/18 05:48:44 momjian Exp $ # #------------------------------------------------------------------------- @@ -105,6 +105,11 @@ do fi else dbname="$1" fi + if [ "$#" -ne 1 ]; then + echo "$CMDNAME: invalid option: $2" 1>&2 + echo "Try '$CMDNAME --help' for more information." 1>&2 + exit 1 + fi ;; esac shift diff --git a/src/bin/scripts/dropuser b/src/bin/scripts/dropuser index ed95ec6c73..298710ee3b 100644 --- a/src/bin/scripts/dropuser +++ b/src/bin/scripts/dropuser @@ -9,7 +9,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.14 2001/09/30 22:17:51 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.15 2002/02/18 05:48:45 momjian Exp $ # # Note - this should NOT be setuid. # @@ -91,6 +91,11 @@ do ;; *) DelUser="$1" + if [ "$#" -ne 1 ]; then + echo "$CMDNAME: invalid option: $2" 1>&2 + echo "Try '$CMDNAME --help' for more information." 1>&2 + exit 1 + fi ;; esac shift; diff --git a/src/bin/scripts/vacuumdb b/src/bin/scripts/vacuumdb index 35c8cc4b3b..b14991d178 100644 --- a/src/bin/scripts/vacuumdb +++ b/src/bin/scripts/vacuumdb @@ -12,7 +12,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.19 2001/09/30 22:17:51 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.20 2002/02/18 05:48:45 momjian Exp $ # #------------------------------------------------------------------------- @@ -112,6 +112,11 @@ do ;; *) dbname="$1" + if [ "$#" -ne 1 ]; then + echo "$CMDNAME: invalid option: $2" 1>&2 + echo "Try '$CMDNAME --help' for more information." 1>&2 + exit 1 + fi ;; esac shift @@ -151,9 +156,12 @@ if [ "$alldb" ]; then dbname=`${PATHNAME}psql $PSQLOPT -q -t -A -d template1 -c 'SELECT datname FROM pg_database WHERE datallowconn'` elif [ -z "$dbname" ]; then - echo "$CMDNAME: missing required argument: database name" 1>&2 - echo "Try '$CMDNAME -?' for help." 1>&2 - exit 1 + if [ "$PGUSER" ]; then + dbname="$PGUSER" + else + dbname=`${PATHNAME}pg_id -u -n` + fi + [ "$?" -ne 0 ] && exit 1 fi for db in $dbname