Menu
Public repository / 0908278601908726896075f810fec7409e85d203
AkurAI-EC2 / libexec/akurai-ec2-manifest.py
Latest change d7eb6622a4697643ecf906b39e64b71c72e8a69b - fix: harden v2 manifest install and parsing by Claude Code
#!/usr/bin/env python3
"""Flatten AkurAI EC2 TOML manifests into shell-friendly key/value records."""
from __future__ import annotations
import argparse
import datetime as dt
import json
import sys
import tomllib
from pathlib import Path
from typing import Any, Iterable
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(
description="Flatten a TOML manifest into key<TAB>value records."
)
parser.add_argument("manifest", help="Path to a TOML manifest file.")
return parser.parse_args()
def encode_scalar(value: Any) -> str:
if isinstance(value, bool):
return "true" if value else "false"
if isinstance(value, (int, float)):
return str(value)
if isinstance(value, (dt.date, dt.datetime, dt.time)):
return value.isoformat()
if isinstance(value, str):
if any(ch in value for ch in ("\t", "\r", "\n", "\0")):
raise ValueError("strings with tabs or newlines are not supported")
return value
raise ValueError(f"unsupported value type: {type(value).__name__}")
def encode_value(value: Any) -> str:
if isinstance(value, list):
parts = []
for item in value:
if isinstance(item, (dict, list)):
raise ValueError("nested arrays or inline tables are not supported")
parts.append(encode_scalar(item))
return json.dumps(parts, separators=(",", ":"))
return encode_scalar(value)
def flatten(prefix: str, value: Any) -> Iterable[tuple[str, str]]:
if isinstance(value, dict):
for child_key, child_value in value.items():
dotted = f"{prefix}.{child_key}" if prefix else child_key
yield from flatten(dotted, child_value)
return
if not prefix:
raise ValueError("top-level scalar manifests are not supported")
yield prefix, encode_value(value)
def main() -> int:
args = parse_args()
manifest_path = Path(args.manifest)
with manifest_path.open("rb") as handle:
data = tomllib.load(handle)
for key, value in flatten("", data):
sys.stdout.write(f"{key}\t{value}\n")
return 0
if __name__ == "__main__":
try:
raise SystemExit(main())
except ValueError as exc:
print(f"error: {exc}", file=sys.stderr)
raise SystemExit(1)