summaryrefslogtreecommitdiff
path: root/postgresql/bin/postgres-wrapper
diff options
context:
space:
mode:
Diffstat (limited to 'postgresql/bin/postgres-wrapper')
-rw-r--r--postgresql/bin/postgres-wrapper62
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