#!/bin/sh
VERSION='$Id: sm_postgres,v 1.5 2006/06/13 20:42:31 sesam Exp $'

trap 'echo "Signal recived";stop_db;exit 0' 1 2 3 4 5 6 15

# READ INI
read_ini()
{
  SM_INI=`grep -i '^sm_ini=' /etc/sesam2000.ini|cut -d"=" -f2`
  echo `grep -i "$1=" "$SM_INI"|cut -d"=" -f2`
}

sub_getparam()
{
  GV_RO=`read_ini gv_ro`
  GV_RW_DB=`read_ini gv_rw_db`
  GV_RW_LGC=`read_ini gv_rw_lgc`
  GV_PORT_DB=`read_ini gv_port_db`

  # PRE SETTING FOR DAEMON
  SWITCH=""  

  if [ "$1" = "stop" -o "$1" = "STOP" ]
  then
    SWITCH="stop"
  fi

  if [ "$1" = "start" -o "$1" = "START" ]
  then
    SWITCH="start"
  fi  
}

stop_db()
{
    echo "Stopping ${POSTMASTER}"
    su - sesam -c "pg_ctl -m fast -D ${GV_RW_DB} stop"
    echo "Done"
}

# MAIN PROCEDURE
sub_main()
{
  # MY MODULE
  PM=postmaster

  if [ "$SWITCH" = "start" -o "$SWITCH" = "" ] 
  then
    echo "TRY TO START ${MYPRG}"
      su - sesam -c "postmaster -p ${GV_PORT_DB} -i -D ${GV_RW_DB} -c silent-mode=false" >${GV_RW_LGC}sm_pgdb.lgc 2>&1 &
    wait 
    STATUS=$?
    if [ "$STATUS" = "0" ]
    then
      echo "DONE"
      exit 0
    else
      echo "FAIL TO START ${MYPRG}"
      exit 1
    fi
  fi

  if [ "$SWITCH" = "stop" ] 
  then
    stop_db
  fi
}

# MAIN
MYSELF=$0

# RUN SUB
sub_getparam $1
sub_main

