#!/usr/bin/env bash
# onx-htaccess-translate — .htaccess → OLS rewrite block (v80.5)
#
# Usage: onx-htaccess-translate /path/to/.htaccess
#
# Output: OLS-uyumlu rewrite kuralları (stdout).
# Exit:   0=ok 1=invalid-input 2=file-not-found
#
# Internally PHP HtaccessTranslator service çağrılır (Laravel artisan tinker).
# Çağıran (onx-vhost-add-ols) bu çıktıyı vhost context block'una inject eder.

set -euo pipefail

HTACCESS_PATH="${1:-}"
[[ -z "${HTACCESS_PATH}" ]] && { echo "Usage: $0 /path/to/.htaccess" >&2; exit 1; }
[[ -f "${HTACCESS_PATH}" ]] || { echo "File not found: ${HTACCESS_PATH}" >&2; exit 2; }

ONOX_ROOT="${ONOX_ROOT:-/opt/onoxsoft}"
PHP_CLI="${PHP_CLI:-/opt/remi/php82/root/usr/bin/php}"

# PHP tinker ile HtaccessTranslator service çağır
# Output: translator->translate() sonucu (executable rewrite rules)
cd "${ONOX_ROOT}" 2>/dev/null || exit 2

CONTENT=$(cat "${HTACCESS_PATH}")
# Base64 encode et — multi-line content artisan tinker'a güvenli pass
B64=$(echo -n "${CONTENT}" | base64 -w0)

"${PHP_CLI}" artisan tinker --execute="
\$translator = app(\App\Domain\WebServer\Services\HtaccessTranslator::class);
\$htaccess = base64_decode('${B64}');
\$result = \$translator->translate(\$htaccess);
echo \$result;
" 2>/dev/null | grep -vE "^(PHP|Psy|Loaded|Warning|Notice|>|$)" || true
