#!/usr/bin/env bash

function assertPresence() {
    VARIABLE_NAME=$1
    if [ -z ${!VARIABLE_NAME} ]; then
        echo "${VARIABLE_NAME} is unset. Please set this label to run this docker container";
        exit 1
    fi
}

assertPresence DATABASE_HOST
assertPresence DATABASE_USER
assertPresence DATABASE_PASSWORD
assertPresence DATABASE_PORT

STATE=NOT_RUN
WAIT=1

is_alive() {
    WAIT=$((WAIT+1))
    if [[ $WAIT -le 180 ]]; then
        DB_CON_OK=$(PGPASSWORD=$DATABASE_PASSWORD psql -h $DATABASE_HOST -U $DATABASE_USER -p $DATABASE_PORT -t -A -c "SELECT datname FROM pg_database WHERE datname='$DATABASE_NAME'" $DATABASE_NAME | grep -i $DATABASE_NAME)
        if [[ $DB_CON_OK == "$DATABASE_NAME" ]]; then
            STATE=RUN
        fi
    else
       exit
    fi
}

while [ $STATE == "NOT_RUN" ]; do
    is_alive
    sleep 1
done
