This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/scripts/verifier_gui.py

45 lines
1.4 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
"""Verifie la syntaxe du JavaScript embarque dans inventory_gui.py.
Garde-fou : py_compile ne voit pas le JS (il est dans une chaine Python).
Une seule erreur de syntaxe JS casse toute la page. On extrait le JS et on le
passe a `node --check`. Si node est absent, la verification est sautee (signale).
"""
from __future__ import annotations
import re
import shutil
import subprocess
import sys
import tempfile
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent))
import inventory_gui as g # noqa: E402
def main() -> int:
if not shutil.which("node"):
print("node absent : verification de la syntaxe JS du GUI sautee.")
return 0
html = g.HTML.replace("__JETON__", "TEST")
blocs = re.findall(r"<script>(.*?)</script>", html, re.S)
if not blocs:
print("erreur: aucun bloc <script> trouve dans le GUI.", file=sys.stderr)
return 1
with tempfile.NamedTemporaryFile("w", suffix=".js", delete=False, encoding="utf-8") as fichier:
fichier.write("\n".join(blocs))
chemin = fichier.name
resultat = subprocess.run(["node", "--check", chemin], capture_output=True, text=True)
if resultat.returncode != 0:
print(resultat.stderr, file=sys.stderr)
return 1
print("JS du GUI : syntaxe valide (node --check).")
return 0
if __name__ == "__main__":
raise SystemExit(main())