<?php

function connect()
{
    $connection = getenv('DB_CONNECTION');
    $host = getenv('DB_HOST');
    $username = getenv('DB_USERNAME');
    $password = getenv('DB_PASSWORD');
    $database = getenv('DB_DATABASE');
    $port = getenv('DB_PORT');
    if ($connection === 'mysql') {
        return mysqli_connect($host, $username, $password, $database, $port);
    }
    if ($connection === 'pgsql') {
        return pg_connect('host=' . $host . ' port=' . $port . ' dbname=' . $database . ' user=' . $username . ' password=' . $password);
    }
    throw new Exception('unsupported connection type ' . $connection);
}

$conn = connect();

$counter = 10;
$count = 1;
while (!$conn) {
    echo("Waiting for Database... $count / $counter\n");
    sleep(2);
    $conn = connect();
    $count++;
    if ($count == $counter) {
        echo("Database did not respond after $counter tries, giving up\n");
        die(1);
    }
}

echo "Database is up\n";
?>