Something went wrong. Try again.
Codex skill for Commodore 64 Ultimate hardware workflows.
Something went wrong. Try again.
1.9 kB · 64 lines
Python
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465#!/usr/bin/env python3"""Read Ultimate identity and REST API version without changing device state."""
from __future__ import annotations
import argparseimport jsonimport osfrom pathlib import Pathimport sys
from ultimate_rest import UltimateRestClient, UltimateRestError
def write_report(path: Path, result: dict[str, object]) -> None: path.parent.mkdir(parents=True, exist_ok=True) path.write_text(json.dumps(result, indent=2, sort_keys=True) + "\n")
def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser( description="Read C64 Ultimate identity through its REST API." ) parser.add_argument("host", help="device hostname or IPv4 address") parser.add_argument("--timeout", type=float, default=3.0) parser.add_argument( "--retries", type=int, default=2, help="bounded retries for these read-only requests (default: 2)", ) parser.add_argument("--report", type=Path, help="also write the JSON result here") parser.add_argument( "--password-env", default="C64U_PASSWORD", help="environment variable containing the network password", ) return parser.parse_args()
def main() -> int: args = parse_args() try: client = UltimateRestClient( args.host, timeout=args.timeout, password=os.environ.get(args.password_env), ) result = { "rest": client.json("/v1/version", retries=args.retries), "device": client.json("/v1/info", retries=args.retries), } if args.report: write_report(args.report, result) except (OSError, ValueError, UltimateRestError) as error: print(f"Probe failed: {error}", file=sys.stderr) return 1
print(json.dumps(result, indent=2, sort_keys=True)) return 0
if __name__ == "__main__": raise SystemExit(main())