UNPKG

@lunora/cli

Version:

The Lunora CLI: init, dev, deploy, codegen, migrate, seed, doctor, insights, logs, registry, and the rest of the project commands

2 lines (1 loc) 2.01 kB
import{d as h}from"../packem_shared/command-Mmxzxyr5.mjs";import{i as p}from"../packem_shared/docker-DpVxvYpL.mjs";import{EXIT_CODE as m}from"../packem_shared/EXIT_CODE-08cwt3MK.mjs";import{defaultSpawner as S}from"../packem_shared/createRecordingSpawner-sS7LEN7x.mjs";import{execArgsFor as w,detectPackageManager as v}from"@lunora/config";const u=new Set(["build","delete","images","info","list","push"]),b=new Set(["build","push"]),f=new Set(["images list","info","list"]),E=async e=>{const[r,...t]=e.argument;if(r===void 0||!u.has(r)){const n=`lunora containers requires a subcommand: ${[...u].toSorted((i,d)=>i.localeCompare(d)).join(" | ")}. Example: lunora containers build ./containers/app --tag app:v1 --push`;return e.logger.error(n),{code:m.USAGE,error:n}}const o=e.format==="json",s=r==="images"?`images ${t[0]??""}`.trim():r;if(o&&!f.has(s)){const n=`containers ${s}: --format json is only available for the read subcommands (${[...f].toSorted((i,d)=>i.localeCompare(d)).join(" | ")}) — wrangler has no JSON rendering for the rest.`;return e.logger.error(n),{code:m.USAGE,error:n}}if(b.has(r)&&!(e.dockerAvailable??p)()){const n=`containers ${r} needs a running Docker-compatible engine (it builds/pushes images locally). Start Docker or Colima and retry. Note: container images must target linux/amd64.`;return e.logger.error(n),{code:m.MISSING_DEPENDENCY,error:n}}const a=["containers",r,...t];o&&a.push("--json"),e.tag!==void 0&&a.push("--tag",e.tag),e.push===!0&&a.push("--push"),e.env!==void 0&&a.push("--env",e.env);const l=e.cwd??process.cwd(),g=w(v(l),"wrangler",a),c={args:g.args,command:g.command,cwd:l};return e.logger.info(`running ${c.command} ${c.args.join(" ")}`),{code:(await(e.spawner??S)(c)).code,delegated:o,descriptor:c}},k=h(async({argument:e,cwd:r,format:t,logger:o,options:s})=>{const a=await E({argument:e,cwd:r,env:s.env,format:t,logger:o,push:s.push===!0,tag:s.tag});return{code:a.code,delegated:a.delegated,error:a.error}});export{k as execute,E as runContainersCommand};