#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" APP_DIR="${APP_DIR:-$SCRIPT_DIR}" INSTANCE_DIR="${INSTANCE_DIR:-$APP_DIR/instance}" ENV_FILE="${ENV_FILE:-$APP_DIR/.env}" DB_FILE="${DB_FILE:-$INSTANCE_DIR/fueltrack.db}" # Uruchamiaj aplikację zawsze z jej właściwego katalogu. cd "$APP_DIR" # Wczytaj .env niezależnie od katalogu wywołania skryptu. if [[ -f "$ENV_FILE" ]]; then set -a # shellcheck disable=SC1090 source "$ENV_FILE" set +a fi mkdir -p "$INSTANCE_DIR" mkdir -p "$(dirname -- "$DB_FILE")" export FLASK_ENV="${FLASK_ENV:-development}" export APP_HOST="${APP_HOST:-0.0.0.0}" export APP_PORT="${APP_PORT:-8000}" export GUNICORN_WORKERS="${GUNICORN_WORKERS:-1}" export GUNICORN_THREADS="${GUNICORN_THREADS:-8}" export GUNICORN_TIMEOUT="${GUNICORN_TIMEOUT:-0}" export GUNICORN_APP="${GUNICORN_APP:-wsgi:app}" # Jeśli DATABASE_URL nie jest ustawione w .env, użyj bezwzględnej # ścieżki do pliku SQLite. if [[ -z "${DATABASE_URL:-}" ]]; then export DATABASE_URL="sqlite:///$DB_FILE" fi echo "FuelTrack DEV" echo "Katalog aplikacji: $APP_DIR" echo "Adres: http://localhost:${APP_PORT}" echo "Baza: $DATABASE_URL" exec gunicorn \ --chdir "$APP_DIR" \ --reload \ --access-logfile - \ --error-logfile - \ --worker-class gthread \ --workers "$GUNICORN_WORKERS" \ --threads "$GUNICORN_THREADS" \ --timeout "$GUNICORN_TIMEOUT" \ --bind "$APP_HOST:$APP_PORT" \ "$GUNICORN_APP"