Files
troupe-standup/wizard-work/spark/measure_environment.py

71 lines
2.2 KiB
Python

#!/usr/bin/env python3
"""
Environment verification script for Hermes snippet lane.
Measures and records actual system state as JSON.
"""
import os
import sys
import json
import subprocess
from datetime import datetime, timezone
def measure_environment():
"""Measure actual environment state."""
results = {
"timestamp_utc": datetime.now(timezone.utc).isoformat(),
"python_version": sys.version,
"python_path": sys.executable,
"working_directory": os.getcwd(),
"directories": {},
"environment_vars": {},
"check_result": "unknown"
}
# Check required directories
dirs_to_check = [
"/root/.hermes/profiles/spark",
"/root/.hermes/wizard-outputs",
"/root/troupe-standup",
"/root/troupe-standup/wizard-work/spark"
]
all_dirs_exist = True
for dir_path in dirs_to_check:
exists = os.path.isdir(dir_path)
results["directories"][dir_path] = {"exists": exists}
if not exists:
all_dirs_exist = False
# Check key environment variables
env_vars_to_check = ["FORGE_TOKEN", "PATH"]
for var in env_vars_to_check:
results["environment_vars"][var] = var in os.environ
# Check git availability
try:
git_result = subprocess.run(["git", "--version"], capture_output=True, text=True)
results["git_available"] = git_result.returncode == 0
results["git_version"] = git_result.stdout.strip() if git_result.returncode == 0 else None
except Exception:
results["git_available"] = False
results["git_version"] = None
# Check troupe-standup git repo
results["troupe_is_git_repo"] = os.path.isdir("/root/troupe-standup/.git")
results["check_result"] = "PASS" if all_dirs_exist and results.get("git_available", False) else "FAIL"
return results
if __name__ == "__main__":
results = measure_environment()
# Write to file
output_path = "/root/.hermes/wizard-outputs/spark/environment_check_result.json"
with open(output_path, "w") as f:
json.dump(results, f, indent=2)
print(json.dumps(results, indent=2))
# Exit 0 on PASS, 1 on FAIL
sys.exit(0 if results["check_result"] == "PASS" else 1)