#!/usr/bin/env python3 """Script de debug pour les variables circulaires""" import sys import os sys.path.append('/home/debian/4NK_vault') from pathlib import Path from api_server import EnvProcessor def test_circular_variables(): print("🔍 Test des variables circulaires HOST/DOMAIN") # Test avec le fichier .env de dev env_file = Path('/home/debian/4NK_vault/storage/dev/.env') processor = EnvProcessor(env_file) # Test de résolution des variables problématiques test_variables = ['HOST', 'DOMAIN', 'ROOT_HOST', 'ROOT_URL'] print(f"\n🔍 Test de résolution des variables:") for var in test_variables: if var in processor.variables: original_value = processor.variables[var] try: resolved = processor._resolve_variable(var) print(f" {var}: {original_value} → {resolved}") except Exception as e: print(f" {var}: {original_value} → ERREUR: {e}") else: print(f" {var}: NON TROVÉE") # Test avec un contenu qui utilise ces variables test_content = """ GF_SERVER_ROOT_URL=https://dev4.$HOST/grafana ROOT_URL=https://$ROOT_HOST GRAFANA_URL=$ROOT_URL/grafana """ print(f"\n📄 Contenu de test:") print(test_content) processed_content = processor.process_content(test_content) print(f"\n📄 Contenu traité:") print(processed_content) # Vérifier si des variables sont encore présentes if '$' in processed_content: print("\n⚠️ Variables non résolues détectées!") import re remaining_vars = re.findall(r'\$[A-Za-z_][A-Za-z0-9_]*', processed_content) print(f"Variables restantes: {remaining_vars}") else: print("\n✅ Toutes les variables ont été résolues!") if __name__ == "__main__": test_circular_variables()