#!/usr/bin/env bash set -euo pipefail export CATALINA_TMPDIR=/usr/local/tomcat/temp runtime_root="/usr/local/tomcat/webapps/ROOT" workspace_www="/workspace/www" workspace_rus="/workspace/rus" rm -rf "$runtime_root" mkdir -p "$runtime_root" shopt -s dotglob nullglob for source_path in "$workspace_www"/*; do entry_name="$(basename "$source_path")" if [ "$entry_name" = "WEB-INF" ]; then continue fi ln -s "$source_path" "$runtime_root/$entry_name" done mkdir -p "$runtime_root/WEB-INF" cp -a "$workspace_www/WEB-INF/." "$runtime_root/WEB-INF/" if [ -d "$workspace_rus/WEB-INF/classes" ]; then mkdir -p "$runtime_root/WEB-INF/classes" cp -a "$workspace_rus/WEB-INF/classes/." "$runtime_root/WEB-INF/classes/" fi mkdir -p /usr/local/tomcat/conf/Catalina/localhost cat > /usr/local/tomcat/conf/Catalina/localhost/ROOT.xml <<'EOF' EOF /usr/local/bin/bootstrap-docbase.sh wait_for_mysql() { local host="${LOCAL_DB_HOST:-mysql}" local port="${LOCAL_DB_PORT:-3306}" local database="${LOCAL_DB_NAME:-pg}" local user="${LOCAL_DB_USER:-root}" local password="${LOCAL_DB_PASSWORD:-root}" local attempts=60 for ((attempt=1; attempt<=attempts; attempt++)); do if mysql --protocol=TCP -h "$host" -P "$port" -u"$user" -p"$password" -D "$database" -Nse "SELECT 1 FROM parm WHERE codice = 'REWRITE_URL_ENABLE' LIMIT 1" >/dev/null 2>&1; then echo "MySQL is ready for legacy app startup" return 0 fi echo "Waiting for MySQL readiness ($attempt/$attempts)" sleep 2 done echo "MySQL did not become ready for legacy app startup" >&2 return 1 } wait_for_mysql patch_context_param() { local param_name="$1" local param_value="$2" PARAM_NAME="$param_name" PARAM_VALUE="$param_value" perl -0pi -e 's#(\Q$ENV{PARAM_NAME}\E\s*)[^<]*()#$1 . $ENV{PARAM_VALUE} . $2#egs' "$runtime_root/WEB-INF/web.xml" } patch_context_param database "//${LOCAL_DB_HOST:-mysql}/${LOCAL_DB_NAME:-pg}" patch_context_param catalog "${LOCAL_DB_NAME:-pg}" patch_context_param user "${LOCAL_DB_USER:-root}" patch_context_param password "${LOCAL_DB_PASSWORD:-root}" patch_context_param instance "${LOCAL_APP_INSTANCE:-main}" exec catalina.sh run