#!/bin/bash
source /etc/profile
source $RBLIB/rb_manager_functions.sh
source $RBETC/rb_init_conf.conf

function usage() {
  echo "$0 [druid|redborder|opscode_chef|radius|airflow]"
}

USER="$*"
RET=1

if [ "x$USER" == "xd" -o "x$USER" == "xdr" -o "x$USER" == "xdru" -o "x$USER" == "xdrui" ]; then
    USER="druid"
elif [ "x$USER" == "xr" -o "x$USER" == "xre" -o "x$USER" == "xred" -o "x$USER" == "xredb" -o "x$USER" == "xredbo" -o "x$USER" == "xredbor" -o "x$USER" == "xredbord" -o "x$USER" == "xredborde" ]; then
    USER="redborder"
elif [ "x$USER" == "xo" -o "x$USER" == "xop" -o "x$USER" == "xops" -o "x$USER" == "xopsc" -o "x$USER" == "xopsco" -o "x$USER" == "xopscod" -o "x$USER" == "xopsode" -o "x$USER" == "xopsode_" -o "x$USER" == "xopsode_c" -o "x$USER" == "xopsode_ch" -o "x$USER" == "xopsode_che" -o "x$USER" == "xchef" ]; then
    USER="opscode_chef"
elif [ "x$USER" == "xra" -o "x$USER" == "xrad" -o "x$USER" == "xradi" -o "x$USER" == "xradiu" -o "x$USER" == "xradius" ]; then
    USER="radius"
elif [ "x$USER" == "xa" -o "x$USER" == "xai" -o "x$USER" == "xair" -o "x$USER" == "xairf" -o "x$USER" == "xairfl" -o "x$USER" == "xairflo" -o "x$USER" == "xairflow" ]; then
    USER="airflow"
fi

if [ "x$USER" == "xdruid" -o "x$USER" == "xredborder" -o "x$USER" == "xopscode_chef" -o "x$USER" == "xradius" -o "x$USER" == "xairflow" ]; then
    if [ "x$USER" == "xredborder" -a -f /var/www/rb-rails/config/database.yml ]; then
        line=$(awk '/redborder/{ print NR; exit }' /var/www/rb-rails/config/database.yml)
        PGPASSWORD=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "password: " | head -n 1 | awk '{print $2}')
        PGHOSTNAME=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "host: " | head -n 1 | awk '{print $2}')
        PGPORT=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "port: " | head -n 1 | awk '{print $2}')
    elif [ "x$USER" == "xdruid" -a -f /var/www/rb-rails/config/database.yml ]; then
        line=$(awk '/druid/{ print NR; exit }' /var/www/rb-rails/config/database.yml)
        PGPASSWORD=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "password: " | head -n 1 | awk '{print $2}')
        PGHOSTNAME=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "host: " | head -n 1 | awk '{print $2}')
        PGPORT=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "port: " | head -n 1 | awk '{print $2}')
    elif [ "x$USER" == "xopscode_chef" -a -f /opt/opscode/embedded/service/opscode-erchef/sys.config ]; then
        PGPASSWORD=$(grep '{db_pass' /opt/opscode/embedded/service/opscode-erchef/sys.config |awk '{print $2}' | sed 's/^"//'|sed 's/"},$//')
        PGHOSTNAME=$(grep '{db_host' /opt/opscode/embedded/service/opscode-erchef/sys.config |awk '{print $2}' | sed 's/^"//'|sed 's/"},$//')
        PGPORT=$(grep '{db_port' /opt/opscode/embedded/service/opscode-erchef/sys.config |awk '{print $2}' | sed 's/^"//'|sed 's/"},$//' |sed 's/}.*//')
    elif [ "x$USER" == "xradius" -a -f /var/www/rb-rails/config/database.yml ]; then
        line=$(awk '/radius/{ print NR; exit }' /var/www/rb-rails/config/database.yml)
        PGPASSWORD=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "password: " | head -n 1 | awk '{print $2}')
        PGHOSTNAME=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "host: " | head -n 1 | awk '{print $2}')
        PGPORT=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "port: " | head -n 1 | awk '{print $2}')
    elif [ "x$USER" == "xairflow" -a -f /var/chef/data/data_bag/passwords/airflow.json ]; then
        PGPASSWORD=$(jq -r '.pass' /var/chef/data/data_bag/passwords/airflow.json)
        PGHOSTNAME=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "host: " | head -n 1 | awk '{print $2}')
        PGPORT=$(tail -n +$line /var/www/rb-rails/config/database.yml |grep "port: " | head -n 1 | awk '{print $2}')
    fi

    [ "x$PGPORT" == "x" ] && PGPORT=5432
    [ "x$PGHOSTNAME" == "x" ] && PGHOSTNAME="master.postgresql.service"

    if [ "x$PGPASSWORD" != "x" ]; then
        PGPASSWORD="$PGPASSWORD" /bin/psql -U ${USER} -h $PGHOSTNAME -p ${PGPORT} -v ON_ERROR_STOP=on
        RET=$?
    else
        /bin/psql -U ${USER} -h $PGHOSTNAME -p ${PGPORT} -v ON_ERROR_STOP=on
        RET=$?
    fi

else
    usage
fi

exit $RET
