#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50

start() {
    config_load "postgresql"
    if [ ! -e /bin/su ]; then
        echo "The su command is requred to run postgres"
        exit 1
    fi
    config_get pgdata config PGDATA

    if [ ! -d ${pgdata} ]; then
        echo "Create the data directory (${pgdata}) and try again"
        exit 1
    fi

    if [ -f ${pgdata}/postmaster.pid ]; then
        rm ${pgdata}/postmaster.pid
    fi

    config_get pguser config PGUSER
    config_get pglog config PGLOG
    config_get pgctl config PG_CTL
    config_get pgopts config PGOPTS

    /bin/su - ${pguser} -c "${pgctl} start -D '${pgdata}' -s -l '${pglog}' -o '${pgopts}'"

    while :
    do
        cnt=$((${cnt} + 1))
        if [ -f "${pgdata}/postmaster.pid" ]; then
            ret=0
            break
        fi

        if [ ${cnt} -eq 30 ]; then
            echo "Postgres failed to start.  See ${pglog} for details"
            ret=1
            break
        fi
        sleep 1
    done

    return ${ret}
}