Fix overly-aggressive and inconsistent quoting in OS X start script.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 26 Nov 2011 18:01:02 +0000 (13:01 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 26 Nov 2011 18:01:02 +0000 (13:01 -0500)
Sidar Lopez, per bug #6310, with some additional improvements by me.
Back-patch to 9.0, where the issue was introduced.

contrib/start-scripts/osx/PostgreSQL

index 58e69bc784fd882f0bc41b1cf5ef4bfcf3fc26a1..e4b56dfb3b4c8c2169ad76732515c03c234b9c60 100755 (executable)
@@ -85,28 +85,28 @@ StartService () {
     if [ "${POSTGRESQL:=-NO-}" = "-YES-" ]; then
         ConsoleMessage "Starting PostgreSQL database server"
         if [ "${ROTATELOGS}" = "1" ]; then
-            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" 2>&1 | ${LOGUTIL} '${PGLOG}' ${ROTATESEC} &
+            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" 2>&1 | ${LOGUTIL} "${PGLOG}" ${ROTATESEC} &
         else
-            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>$PGLOG 2>&1
+            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>"$PGLOG" 2>&1
         fi
     fi
 }
 
 StopService () {
     ConsoleMessage "Stopping PostgreSQL database server"
-    sudo -u $PGUSER $PGCTL stop -D "$PGDATA" -s -m fast
+    sudo -u $PGUSER sh -c "$PGCTL stop -D '${PGDATA}' -s -m fast"
 }
 
 RestartService () {
     if [ "${POSTGRESQL:=-NO-}" = "-YES-" ]; then
         ConsoleMessage "Restarting PostgreSQL database server"
    # should match StopService:
-   sudo -u $PGUSER $PGCTL stop -D "$PGDATA" -s -m fast
+   sudo -u $PGUSER sh -c "$PGCTL stop -D '${PGDATA}' -s -m fast"
    # should match StartService:
         if [ "${ROTATELOGS}" = "1" ]; then
-            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" 2>&1 | ${LOGUTIL} '${PGLOG}' ${ROTATESEC} &
+            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" 2>&1 | ${LOGUTIL} "${PGLOG}" ${ROTATESEC} &
         else
-            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>$PGLOG 2>&1
+            sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>"$PGLOG" 2>&1
         fi
     else
         StopService