import json
import os
import shutil
import sys
import tempfile
tina4_dir = os.environ.get("TINA4_PYTHON_DIR")
if not tina4_dir or not os.path.isdir(tina4_dir):
print(json.dumps({"error": "TINA4_PYTHON_DIR not set or not a directory"}))
sys.exit(3)
sys.path.insert(0, tina4_dir)
try:
from tina4_python.dev_admin import metrics as m
except Exception as exc: print(json.dumps({"error": f"cannot import metrics.py: {exc}"}))
sys.exit(3)
src_file = sys.argv[1]
tmp = tempfile.mkdtemp()
try:
dst = os.path.join(tmp, os.path.basename(src_file))
shutil.copy(src_file, dst)
result = m.full_analysis(tmp)
fm = result["file_metrics"][0]
print(json.dumps({
"loc": fm["loc"],
"complexity": fm["complexity"],
"functions": fm["functions"],
"maintainability": fm["maintainability"],
"avg_complexity": fm["avg_complexity"],
}))
finally:
shutil.rmtree(tmp, ignore_errors=True)