Files

78 lines
2.1 KiB
Python

#!/usr/bin/env python3
"""
Hermes Environment Validator
Verifies the runtime environment is correctly configured for the Troupe stack.
"""
import os
import sys
from pathlib import Path
def validate_environment() -> tuple:
"""Run all environment validations and return (results, all_passed)."""
results = []
all_passed = True
# 1. Check current working directory
cwd = os.getcwd()
cwd_pass = cwd == '/root'
results.append(('cwd_correct', cwd_pass, cwd))
if not cwd_pass:
all_passed = False
# 2. Check scratch directory exists
scratch = os.environ.get('TMPDIR', '/tmp')
scratch_path = Path(scratch)
scratch_pass = scratch_path.exists()
results.append(('scratch_exists', scratch_pass, scratch))
if not scratch_pass:
all_passed = False
# 3. Check Hermes profile directory
profile_dir = Path('/root/.hermes/profiles/spark')
profile_pass = profile_dir.exists()
results.append(('profile_exists', profile_pass, str(profile_dir)))
if not profile_pass:
all_passed = False
# 4. Check skills directory
skills_dir = Path('/root/.hermes/skills')
skills_pass = skills_dir.exists()
results.append(('skills_exists', skills_pass, str(skills_dir)))
if not skills_pass:
all_passed = False
# 5. Check Python version (3.x required)
python_pass = sys.version_info.major >= 3
results.append(('python_version', python_pass, f"Python {sys.version_info.major}.{sys.version_info.minor}"))
if not python_pass:
all_passed = False
return results, all_passed
def main():
"""Main entry point."""
results, all_passed = validate_environment()
print("=" * 60)
print("HERMES ENVIRONMENT VALIDATION REPORT")
print("=" * 60)
for name, passed, detail in results:
status = "✓ PASS" if passed else "✗ FAIL"
print(f"{name:30s}: {status} ({detail})")
print("=" * 60)
if all_passed:
print("RESULT: ALL VALIDATIONS PASSED")
return 0
else:
print("RESULT: SOME VALIDATIONS FAILED")
return 1
if __name__ == "__main__":
sys.exit(main())