#!/usr/bin/env bash

set -euo pipefail

source /var/www/html/container-runtime.sh

ensure_runtime_dirs
touch_runtime_logs

if [[ "${INVOICE_PDF_HEALTHCHECK_ON_BOOT:-false}" == "true" ]]; then
    echo "========== RUNNING INVOICE CHROMIUM HEALTH CHECK =========="
    HEALTHCHECK_ARGS=()

    if [[ -n "${INVOICE_PDF_HEALTHCHECK_HEADLESS_MODE:-}" ]]; then
        HEALTHCHECK_ARGS+=("--headless=${INVOICE_PDF_HEALTHCHECK_HEADLESS_MODE}")
    fi

    if [[ -n "${INVOICE_PDF_HEALTHCHECK_TIMEOUT:-}" ]]; then
        HEALTHCHECK_ARGS+=("--timeout=${INVOICE_PDF_HEALTHCHECK_TIMEOUT}")
    fi

    HEALTHCHECK_COMMAND='php artisan invoice:chromium-health-check'
    for arg in "${HEALTHCHECK_ARGS[@]}"; do
        printf -v HEALTHCHECK_COMMAND '%s %q' "${HEALTHCHECK_COMMAND}" "${arg}"
    done

    if run_as_www_data "${HEALTHCHECK_COMMAND}"; then
        echo "Invoice Chromium health check passed."
    else
        echo "Invoice Chromium health check failed."
        if [[ "${INVOICE_PDF_HEALTHCHECK_FAIL_FAST:-true}" == "true" ]]; then
            echo "Fail-fast is enabled. Exiting startup."
            exit 1
        fi
    fi
fi

echo "========== STARTING APACHE =========="
# Keep SIGPIPE ignored across exec. Apache workers otherwise die when a client
# closes the connection, which Cloud Run logs as "Uncaught signal: 13".
trap '' PIPE
exec apache2-foreground
