Re: Patch to pg_ctl to better support paths containing

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Barry Lind <barry(at)xythos(dot)com>
Cc: <pgsql-patches(at)postgresql(dot)org>
Subject: Re: Patch to pg_ctl to better support paths containing
Date: 2001-09-20 13:15:41
Message-ID: Pine.LNX.4.30.0109201505310.684-100000@peter.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Barry Lind writes:

> Attached is a set of changes to pg_ctl that I have been using that fixes
> problems I have had with pg_ctl when the paths contains spaces.

> ! CMDNAME=`basename "$0"`

OK.

> else
> # look for it in PATH ('which' command is not portable)
> ! for dir in `echo "$PATH" | sed 's/ /\\\_/g' | sed 's/:/ /g'`
> do
> + dir="`echo $dir | sed 's/\\\_/ /g'`"
> # empty entry in path means current dir
> [ -z "$dir" ] && dir='.'

Probably better to do this with IFS. Btw., this piece of code exists in
identical form in most other PostgreSQL shell scripts. Do you intend to
fix those as well?

> ! DEFPOSTOPTS="$PGDATA/postmaster.opts.default"
> ! POSTOPTSFILE="$PGDATA/postmaster.opts"
> ! PIDFILE="$PGDATA/postmaster.pid"

This is not necessary.

> if [ "$op" = "status" ];then
> ! if [ -f "$PIDFILE" ];then
> ! PID=`sed -n 1p "$PIDFILE"`
> if [ $PID -lt 0 ];then

... more similar stuff OK ...

> else
> # if we are in restart mode, then look for postmaster.opts
> ! eval set X "`cat "$POSTOPTSFILE"`"; shift
> po_path="$1"

That is not portable. There is no portable way to have double quotes
within backticks within double quotes. You might be able to do something
along the lines of

foo=`cat "$POSTOPTSFILE"`
eval set X "$foo"; shift

The expression in question was carefully engineered to handle single
quotes and spaces in the POSTOPTSFILE correctly, so be careful. ;-)

> if [ -n "$oldpid" ];then
> sleep 1
> ! if [ -f "$PIDFILE" ];then
> ! if [ "`sed -n 1p "$PIDFILE"`" = "$oldpid" ];then
> echo "$CMDNAME: cannot start postmaster" 1>&2
> echo "Examine the log output." 1>&2

Same problem here.

--
Peter Eisentraut peter_e(at)gmx(dot)net http://funkturm.homeip.net/~peter

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Gavin Sherry 2001-09-20 13:58:37 CREATE OR REPLACE FUNCTION
Previous Message Barry Lind 2001-09-20 04:19:21 Patch to pg_ctl to better support paths containing spaces