Files
Claro/tools/validate_v1_16.py
T
Hermes Agent d555071406 fix: stabilize learning path, reliability and legacy Windows builds
Unify beginner syntax while preserving compatibility, repair ownership and parser guards, add verified distribution tooling and VC6 Windows 98 build inputs, and clarify documentation and release status. Preserve DOS build-input line endings and exclude generated binaries/caches.
2026-10-20 22:40:19 +00:00

47 lines
1.7 KiB
Python

#!/usr/bin/env python3
import os
import shutil
import subprocess
import tempfile
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
EXE = ROOT / ("claro.exe" if os.name == "nt" else "claro")
def run(cmd, cwd=ROOT, input_text=None):
result = subprocess.run(cmd, cwd=cwd, input=input_text, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
print("$", " ".join(map(str, cmd)))
print(result.stdout, end="")
if result.returncode != 0:
raise SystemExit(result.returncode)
return result.stdout
if not EXE.exists():
run(["gcc", "-std=c99", "src/claro.c", "-O0", "-o", str(EXE), "-lm"])
run([str(EXE), "--version"])
run([str(EXE), "test"])
run([str(EXE), "validate"])
with tempfile.TemporaryDirectory() as td:
work = Path(td)
shutil.copy2(EXE, work / EXE.name)
local = work / EXE.name
run([str(local), "new", "DemoProject"], cwd=work)
proj = work / "DemoProject"
run([str(local), "package", "doctor"], cwd=proj)
run([str(local), "package", "add", "text"], cwd=proj)
run([str(local), "package", "add", "text"], cwd=proj)
listing = run([str(local), "package", "list"], cwd=proj)
if listing.count("text") != 1:
raise SystemExit("Package was duplicated in listing")
bad = subprocess.run([str(local), "package", "add", "../bad"], cwd=proj, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
print("$", local, "package add ../bad")
print(bad.stdout, end="")
if bad.returncode == 0:
raise SystemExit("Unsafe package name was accepted")
run([str(local), "package", "remove", "text"], cwd=proj)
run([str(local), "run"], cwd=proj)
print("Validation passed. Claro v2026.10.20.223203 networking reliability is ready for use.")