diff --git a/run b/run new file mode 100755 index 000000000..81b90a608 --- /dev/null +++ b/run @@ -0,0 +1,51 @@ +#!/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 " + 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}"