"""nova onboard — generate an env binding from an onboarding request (REQ-181).""" from __future__ import annotations import json from core.onboarding import generate_env_file def add_parser(subparsers): p = subparsers.add_parser("onboard", help="generate an env binding from a request") p.add_argument("--request", default=None, help="inline request JSON") p.add_argument("request_file", nargs="?", default=None, help="request JSON path") p.add_argument("--out", default=None, help="output path (default: stdout)") p.add_argument("--template-env", default="dev") p.set_defaults(_run=run) def run(args) -> int: request = _load_request(args) env = generate_env_file(request, template_env=args.template_env) blob = json.dumps(env, indent=2) + "\n" print(blob) if args.out is None else open(args.out, "w").write(blob) return 0 def _load_request(args): return json.loads(args.request) if args.request else json.loads(open(args.request_file).read()) if __name__ == "__main__": import sys print("use: nova onboard [--out env.json]", file=sys.stderr)