diff options
Diffstat (limited to 'postgresql/bin/postgres-wrapper')
-rw-r--r-- | postgresql/bin/postgres-wrapper | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/postgresql/bin/postgres-wrapper b/postgresql/bin/postgres-wrapper new file mode 100644 index 0000000..26b69c3 --- /dev/null +++ b/postgresql/bin/postgres-wrapper @@ -0,0 +1,62 @@ +#!/bin/bash -e + +PATH=$PATH:/opt/local/bin +CONF=etc/postgresql.conf + +if [ -z "$DATA" ] +then + DATA=../../../data +fi + +if [ ! -d $DATA ] +then + echo "Missing data dir: $DATA" + exit 1 +fi + +if [ -z "$LOG" ] +then + LOG=../../../log +fi + +if [ ! -d $LOG ] +then + echo "Missing log dir: $LOG, creating" + mkdir -p $LOG +fi + +LOG=$LOG/postgresql.log + +if [ ! -r $CONF ] +then + echo "Missing config file: $CONF" + exit 1 +fi + +# TODO: figure out how if pg_ctl exits with sane exit codes. + +x=`dirname $CONF` +CONF=`cd $x; pwd`/`basename $CONF` +DATA=`cd $DATA; pwd` +x=`dirname $LOG` +LOG=`cd $x; pwd`/`basename $LOG` + +case "$APPSH_METHOD" in + start) + echo "Starting postgresql" + exec pg_ctl start \ + -D "$DATA" \ + -o "-c config_file=$CONF" \ + -l $LOG & + ;; + stop) + echo "Stopping postgresql" + exec pg_ctl stop \ + -D "$DATA" \ + -o "-c config_file=$CONF" + ;; + *) + echo "Unknown method: $APPSH_METHOD" + exit 0 + ;; +esac |