#!/usr/bin/with-contenv bash
# shellcheck shell=bash

# copy default config files if they don't exist
if [[ ! -f /config/nginx/proxy.conf ]]; then
    cp /defaults/nginx/proxy.conf.sample /config/nginx/proxy.conf
fi

# copy authelia config files if they don't exist
if [[ ! -f /config/nginx/authelia-location.conf ]]; then
    cp /defaults/nginx/authelia-location.conf.sample /config/nginx/authelia-location.conf
fi
if [[ ! -f /config/nginx/authelia-server.conf ]]; then
    cp /defaults/nginx/authelia-server.conf.sample /config/nginx/authelia-server.conf
fi

# copy authentik config files if they don't exist
if [[ ! -f /config/nginx/authentik-location.conf ]]; then
    cp /defaults/nginx/authentik-location.conf.sample /config/nginx/authentik-location.conf
fi
if [[ ! -f /config/nginx/authentik-server.conf ]]; then
    cp /defaults/nginx/authentik-server.conf.sample /config/nginx/authentik-server.conf
fi

# copy tinyauth config files if they don't exist
if [[ ! -f /config/nginx/tinyauth-location.conf ]]; then
    cp /defaults/nginx/tinyauth-location.conf.sample /config/nginx/tinyauth-location.conf
fi
if [[ ! -f /config/nginx/tinyauth-server.conf ]]; then
    cp /defaults/nginx/tinyauth-server.conf.sample /config/nginx/tinyauth-server.conf
fi

# copy old ldap config file to new location
if [[ -f /config/nginx/ldap.conf ]] && [[ ! -f /config/nginx/ldap-server.conf ]]; then
    cp /config/nginx/ldap.conf /config/nginx/ldap-server.conf
fi

# copy ldap config files if they don't exist
if [[ ! -f /config/nginx/ldap-location.conf ]]; then
    cp /defaults/nginx/ldap-location.conf.sample /config/nginx/ldap-location.conf
fi
if [[ ! -f /config/nginx/ldap-server.conf ]]; then
    cp /defaults/nginx/ldap-server.conf.sample /config/nginx/ldap-server.conf
fi

# clean the env target directory to ensure a fresh start
rm -f /config/nginx/env-proxy-confs/*
# check if any PROXY_CONFIG environment variables are set
if env | grep -q "^PROXY_CONFIG_"; then
    echo "INFO: Found PROXY_CONFIG environment variables. Generating Nginx configs from environment..."
    # run the Python generator script
    echo "INFO: Running python config generator..."
    if ! python3 /app/config-generator/generate_configs.py; then
        echo "ERROR: The python config generator script failed. Please check the logs above. Container will not start."
        exit 1
    fi
    echo "INFO: Config generation complete."
else
    echo "INFO: No PROXY_CONFIG variables found. User is expected to manage /config/nginx/proxy-confs/ manually."
fi
