#!/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)
PGDATADIR=$(echo "select setting from pg_settings where name = 'data_directory'" | psql --tuples-only --no-align)
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 $PGDATADIR"
PGRESTART="$PGBINDIR/pg_ctl restart -D $PGDATADIR"

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

# ==============================================================================
# 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.*mneerpmailscan'             'local   erpdb       mneerpmailscan                     trust'
add_user 'host.*mneerpmailscan.*10.0.0.0'    'host    erpdb       mneerpmailscan        10.0.0.0/8   trust'
add_user 'host.*mneerpmailscan.*192.168.0.0' 'host    erpdb       mneerpmailscan    192.168.8.0/16   trust'
add_user 'host.*mneerpmailscan.*172.16.0.0'  'host    erpdb       mneerpmailscan     172.16.0.0/12   trust'
add_user 'host.*mneerpmailscan.*127.0.0.1'   'host    erpdb       mneerpmailscan      127.0.0.1/32   trust'
add_user 'host.*mneerpmailscan.*::1/128'     'host    erpdb       mneerpmailscan       ::1/128       trust'

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

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

add_user 'local.*mneerpsystem'               'local   erpdb      mneerpsystem                       trust'
add_user 'host.*mneerpsystem.*10.0.0.0'      'host    erpdb      mneerpsystem           10.0.0.0/8  trust'
add_user 'host.*mneerpsystem.*192.168.0.0'   'host    erpdb      mneerpsystem       192.168.8.0/16  trust'
add_user 'host.*mneerpsystem.*172.16.0.0'    'host    erpdb      mneerpsystem        172.16.0.0/12  trust'
add_user 'host.*mneerpsystem.*127.0.0.1'     'host    erpdb      mneerpsystem         127.0.0.1/32  trust'
add_user 'host.*mneerpsystem.*::1/128'       'host    erpdb      mneerpsystem         ::1/128       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

exit 0