#!/usr/bin/env bash

# Inspired on https://github.com/adriancooney/Taskfile
#
# Install an alias, to be able to simply execute `run`
# echo 'alias run=./run' >> ~/.aliases
#

# Define Docker Compose command prefix...
set -e

docker compose &> /dev/null
if [ $? == 0 ]; then
    DOCKER_COMPOSE="docker compose"
else
    DOCKER_COMPOSE="docker-compose"
fi

SAIL=./vendor/bin/sail
export WWWUSER=${WWWUSER:-$UID}
export WWWGROUP=${WWWGROUP:-$(id -g)}

function help {
    echo "$0 <task> <args>"
    echo "Tasks:"
    compgen -A function | cat -n
}

function default {
    help
}

function wait_db {
    TRIES=0
    MAX_TRIES=15
    WAIT=4

    until $DOCKER_COMPOSE exec postgres bash -c "psql -U coolify -d coolify -t -q -c  \"SELECT datname FROM pg_database;\" " | grep coolify
    do
        ((TRIES++))
        if [ $TRIES -gt $MAX_TRIES ]; then
            echo "Database is not ready after $MAX_TRIES tries. Exiting."
            exit 1
        fi
        echo "Database is not ready yet. Attempt $TRIES/$MAX_TRIES. Waiting $WAIT seconds before next try..."
        sleep $WAIT
    done
}

TIMEFORMAT="Task completed in %3lR"
time "${@:-default}"
