#!/bin/bash

cd `dirname $0`
PGHOST=127.0.156.1

while [ $# -gt 0 ] ; do
  case $1 in
    --projectroot) PROJECTROOT=$2; shift 2;;
         --pghost) PGHOST=$2; shift 2;;

                *)  shift 1;;
  esac
done

PGBINDIR=$(pg_config --bindir)
PGHBAFILE=$(echo "select setting from pg_settings where name = 'hba_file'" | psql --tuples-only --no-align)
PGCONFDIR=$(echo "select setting from pg_settings where name = 'config_file'" | psql --tuples-only --no-align | sed -e "s@/[^/]*\.conf@@")
PGLISTEN=$(echo "select setting from pg_settings where name = 'listen_addresses'" | psql --tuples-only --no-align | sed -e "s@/[^/]*\.conf@@")

PGRELOAD="$PGBINDIR/pg_ctl reload -D $PGCONFDIR"
 PGSTART="$PGBINDIR/pg_ctl start  -D $PGCONFDIR"
  PGSTOP="$PGBINDIR/pg_ctl  stop  -D $PGCONFDIR"

# ==============================================================================
# pg_hba trusted user
# ==============================================================================
add_user()
{
  egrep $1 $PGHBAFILE 2>&1 >/dev/null
  if [ ! "$?" = "0" ]; then
    mv  $PGHBAFILE $PGHBAFILE.nme_orig 

    echo "$2"                 > $PGHBAFILE
    cat $PGHBAFILE.nme_orig  >> $PGHBAFILE
  fi

}

add_user 'local.*md5'                        'local   erpdb       all                                  md5'

add_user 'local.*erpdb.*mne_mailscan'             'local   erpdb       mne_mailscan                     trust'
add_user 'host.*erpdb.*mne_mailscan.*10.0.0.0'    'host    erpdb       mne_mailscan        10.0.0.0/8   trust'
add_user 'host.*erpdb.*mne_mailscan.*192.168.0.0' 'host    erpdb       mne_mailscan    192.168.0.0/16   trust'
add_user 'host.*erpdb.*mne_mailscan.*172.16.0.0'  'host    erpdb       mne_mailscan     172.16.0.0/12   trust'
add_user 'host.*erpdb.*mne_mailscan.*127.0.0.1'   'host    erpdb       mne_mailscan      127.0.0.1/32   trust'
add_user 'host.*erpdb.*mne_mailscan.*::1/128'     'host    erpdb       mne_mailscan           ::1/128   trust'
add_user 'host.*erpdb.*mne_mailscan.*fd00::/8'    'host    erpdb       mne_mailscan          fd00::/8   trust'

add_user 'local.*erpdb.*mne_repository'             'local   erpdb     mne_repository                   trust'
add_user 'host.*erpdb.*mne_repository.*10.0.0.0'    'host    erpdb     mne_repository      10.0.0.0/8   trust'
add_user 'host.*erpdb.*mne_repository.*192.168.0.0' 'host    erpdb     mne_repository  192.168.0.0/16   trust'
add_user 'host.*erpdb.*mne_repository.*172.16.0.0'  'host    erpdb     mne_repository   172.16.0.0/12   trust'
add_user 'host.*erpdb.*mne_repository.*127.0.0.1'   'host    erpdb     mne_repository    127.0.0.1/32   trust'
add_user 'host.*erpdb.*mne_repository.*::1/128'     'host    erpdb     mne_repository    ::1/128        trust'
add_user 'host.*erpdb.*mne_repository.*fd00::/8'    'host    erpdb     mne_repository        fd00::/8   trust'

add_user 'local.*erpdb.*mne_translate'             'local   erpdb      mne_translate                    trust'
add_user 'host.*erpdb.*mne_translate.*10.0.0.0'    'host    erpdb      mne_translate        10.0.0.0/8  trust'
add_user 'host.*erpdb.*mne_translate.*192.168.0.0' 'host    erpdb      mne_translate    192.168.0.0/16  trust'
add_user 'host.*erpdb.*mne_translate.*172.16.0.0'  'host    erpdb      mne_translate     172.16.0.0/12  trust'
add_user 'host.*erpdb.*mne_translate.*127.0.0.1'   'host    erpdb      mne_translate      127.0.0.1/32  trust'
add_user 'host.*erpdb.*mne_translate.*::1/128'     'host    erpdb      mne_translate      ::1/128       trust'
add_user 'host.*erpdb.*mne_translate.*fd00::/8'    'host    erpdb      mne_translate         fd00::/8   trust'

add_user 'host.*admindb.*'"$PGHOST"        "host    all         admindb            $PGHOST/24  trust"
add_user 'host.*postgres.*'"$PGHOST"       "host    all         postgres           $PGHOST/24  trust"

rm -f $PGHBAFILE.nme_orig  > /dev/null 2>&1

$PGRELOAD

# ==============================================================================
# listen on network interfaces
# ==============================================================================
if [ "$PGLISTEN" != "*" ]; then
  echo "listen_addresses = '*'" > "$PGCONFDIR/conf.d/99mne_network.conf"
  $PGSTOP
  sleep 5
  $PGSTART
fi


exit 0