From 848b8aae5487d7fa8a5d169e4f9c4b70e7588344 Mon Sep 17 00:00:00 2001 From: Mandel Olaiya Date: Sun, 26 Apr 2026 13:59:51 +0200 Subject: [PATCH] Audit: capture template origins from staging --- scripts/run_remote_multilingual_audit.sh | 50 +++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/scripts/run_remote_multilingual_audit.sh b/scripts/run_remote_multilingual_audit.sh index 520644b..b1b97e7 100755 --- a/scripts/run_remote_multilingual_audit.sh +++ b/scripts/run_remote_multilingual_audit.sh @@ -8,11 +8,59 @@ set -euo pipefail AUDIT_TIMEOUT_SECONDS=${AUDIT_TIMEOUT_SECONDS:-300} ARTIFACT_DIR=${ARTIFACT_DIR:-artifacts} OUT_FILE="${ARTIFACT_DIR}/multilingual-audit.json" +DEBUG_FILE="${ARTIFACT_DIR}/template-debug.txt" mkdir -p "${ARTIFACT_DIR}" TMP_FILE=$(mktemp) -trap 'rm -f "$TMP_FILE"' EXIT +TMP_DEBUG=$(mktemp) +trap 'rm -f "$TMP_FILE" "$TMP_DEBUG"' EXIT + +REMOTE_DEBUG_CMD="cd '${STAGING_AUDIT_PROJECT_DIR}' && '${STAGING_AUDIT_MANAGE}' shell -c \"\ +from django.template.loader import get_template; \ +import os; \ +print('DJANGO_SETTINGS_MODULE=' + os.environ.get('DJANGO_SETTINGS_MODULE','')); \ +t1=get_template('carbasa/headers/header.html'); \ +t2=get_template('engine/pages/base_home_page.html'); \ +print('carbasa/headers/header.html -> ' + getattr(getattr(t1,'origin',None),'name','(no origin)')); \ +print('engine/pages/base_home_page.html -> ' + getattr(getattr(t2,'origin',None),'name','(no origin)')); \ +\"" REMOTE_CMD="cd '${STAGING_AUDIT_PROJECT_DIR}' && '${STAGING_AUDIT_MANAGE}' audit_locales --format=json" + +set +e +STAGING_AUDIT_PROJECT_NAME="$STAGING_AUDIT_PROJECT_NAME" REMOTE_CMD="$REMOTE_DEBUG_CMD" AUDIT_TIMEOUT_SECONDS="$AUDIT_TIMEOUT_SECONDS" python3 - <<'PY' > "$TMP_DEBUG" +import os +import subprocess +import sys + +cmd = [ + "sudo", "-n", "-u", "mandel", "-g", "www-data", + "/srv/apps/mandel-dashboard/.venv/bin/python", + "/srv/apps/mandel-dashboard/bin/deploy_stg_from_jenkins.py", + os.environ["STAGING_AUDIT_PROJECT_NAME"], + "--command", + os.environ["REMOTE_CMD"], +] +proc = subprocess.run( + cmd, + check=False, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + timeout=int(os.environ["AUDIT_TIMEOUT_SECONDS"]), +) +if proc.stdout: + sys.stdout.write(proc.stdout) +if proc.stderr: + sys.stdout.write("\n[stderr]\n" + proc.stderr) +raise SystemExit(proc.returncode) +PY +debug_rc=$? +set -e +cp "$TMP_DEBUG" "$DEBUG_FILE" +if [ "$debug_rc" -ne 0 ]; then + echo "WARNING: template debug command failed (rc=${debug_rc})" >> "$DEBUG_FILE" +fi + set +e STAGING_AUDIT_PROJECT_NAME="$STAGING_AUDIT_PROJECT_NAME" REMOTE_CMD="$REMOTE_CMD" AUDIT_TIMEOUT_SECONDS="$AUDIT_TIMEOUT_SECONDS" python3 - <<'PY' > "$TMP_FILE" import json