]> granicus.if.org Git - postgresql/commitdiff
This patch fixes problems in initdb, including that it doesn't run
authorMarc G. Fournier <scrappy@hub.org>
Fri, 4 Oct 1996 20:07:10 +0000 (20:07 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Fri, 4 Oct 1996 20:07:10 +0000 (20:07 +0000)
with some versions of sh, and a bug in the master make file that
causes it to issue the message "postgres has been built" at the wrong
time.

Submitted by: bryanh@giraffe.netgate.net (Bryan Henderson)

src/Makefile
src/bin/initdb/initdb.sh

index 76c60a8940ff3f023d024a7045833daa1ec7cd7e..eee4ac3b29f4d0e5833f92fbbf30a0150ad193d1 100644 (file)
@@ -7,7 +7,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/Makefile,v 1.5 1996/10/03 20:09:48 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/Makefile,v 1.6 1996/10/04 20:07:04 scrappy Exp $
 #
 # NOTES
 #      objdir  - location of the objects and generated files (eg. obj)
@@ -34,7 +34,9 @@ endif
        $(MAKE) -C bin $@
        $(MAKE) -C ../doc $@
        @-chown -R $(POSTGRESLOGIN) $(POSTGRESDIR) 2>/dev/null
-       @echo All of Postgres95 is successfully made.  Ready to install.
+       @if test $@. = all. -o $@. = .; then \
+       echo All of Postgres95 is successfully made.  Ready to install. ;\
+        fi
 
 TAGS:
        rm -f TAGS; \
index 71274d6125529b35d2b281c7aa4aeb4030d0ffc2..466facb6d021065960bde272af617a59a2539468 100644 (file)
@@ -26,7 +26,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.8 1996/10/03 04:20:11 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.9 1996/10/04 20:07:10 scrappy Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -57,28 +57,34 @@ noclean=0
 template_only=0
 POSTGRES_SUPERUSERNAME=$USER
 
-while [ "$#" -gt 0 ]
-do
-    if [ "$1" = "-d" ]; then
+for ARG ; do
+# We would normally use e.g. ${ARG#--username=} to parse the options, but
+# there is a bug in some shells that makes that not work (BSD4.4 sh,
+# September 1996 -- supposed to be fixed in later release).  So we bypass
+# the bug with this sed mess.
+
+    username_sed=`echo $ARG | sed s/^--username=//`
+    pgdata_sed=`echo $ARG | sed s/^--pgdata=//`
+
+    if [ $ARG = "--debug" -o $ARG = "-d" ]; then
         debug=1
         echo "Running with debug mode on."
-    elif [ "$1" = "-n" ]; then
+    elif [ $ARG = "--noclean" -o $ARG = "-n" ]; then
         noclean=1
         echo "Running with noclean mode on.  Mistakes will not be cleaned up."
-    elif [ "$1" = "-t" ]; then
+    elif [ $ARG = "--template" ]; then
         template_only=1
         echo "updating template1 database only."
-    elif [ "$1" = "-u" ]; then
-       shift
-        POSTGRES_SUPERUSERNAME="$1"
-    elif [ "$1" = "-r" ]; then
-       shift
-        PGDATA=$1
+    elif [ $username_sed. != $ARG. ]; then
+        POSTGRES_SUPERUSERNAME=$username_sed
+    elif [ $pgdata_sed. != $ARG. ]; then
+        PGDATA=$pgdata_sed
     else    
-        echo "initdb [-t] [-d] [-n] [-u superuser] [-r datadir]" 1>&2
-       exit 1
+        echo "Unrecognized option '$ARG'.  Syntax is:"
+        echo "initdb [--template] [--debug] [--noclean]" \
+             "[--username=SUPERUSER] [--pgdata=DATADIR]"
+        exit 100
     fi
-    shift
 done
 
 if [ "$debug" -eq 1 ]; then
@@ -108,6 +114,7 @@ if [ $template_only -eq 0 ]; then
     echo "$CMDNAME: using $GLOBAL as input to create the global classes."
     echo "$CMDNAME: using $PG_HBA_SAMPLE as the host-based authentication" \
          "control file."
+    echo
 fi  
 
 #---------------------------------------------------------------------------
@@ -143,6 +150,7 @@ echo "We are initializing the database system with username" \
 echo "Please be aware that Postgres is not secure.  Anyone who can connect"
 echo "to the database can act as user $POSTGRES_SUPERUSERNAME" \
      "with very little effort."
+echo
 
 # -----------------------------------------------------------------------
 # Create the data directory if necessary
@@ -165,11 +173,13 @@ if [ -d "$PGDATA" ]; then
 else
     if [ ! -d $PGDATA ]; then
         echo "Creating Postgres database system directory $PGDATA"
+        echo
         mkdir $PGDATA
         if [ $? -ne 0 ]; then exit 5; fi
     fi
     if [ ! -d $PGDATA/base ]; then
         echo "Creating Postgres database system directory $PGDATA/base"
+        echo
         mkdir $PGDATA/base
         if [ $? -ne 0 ]; then exit 5; fi
     fi
@@ -203,6 +213,8 @@ if [ $? -ne 0 ]; then
     exit 1;
 fi
 
+echo
+
 pg_version $PGDATA/base/template1
 
 #----------------------------------------------------------------------------
@@ -210,8 +222,6 @@ pg_version $PGDATA/base/template1
 #----------------------------------------------------------------------------
 
 if [ $template_only -eq 0 ]; then
-    echo "$CMDNAME: creating global classes in $PGDATA"
-
     echo "Creating global classes in $PG_DATA/base"
     echo "Running: postgres $BACKENDARGS template1"
 
@@ -234,6 +244,8 @@ if [ $template_only -eq 0 ]; then
         exit 1;
     fi
 
+    echo
+
     pg_version $PGDATA
 
     cp $PG_HBA_SAMPLE $PGDATA/pg_hba
@@ -262,10 +274,10 @@ if [ $template_only -eq 0 ]; then
     rm -f /tmp/create.$$
 fi
 
+echo
+
 if [ $debug -eq 0 ]; then
     echo "vacuuming template1"
 
     echo "vacuum" | postgres -F -Q template1 > /dev/null
 fi
-
-