#!/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