bit-ship
Version:
Bit-Ship CLI is tool that analyses your code and generates a custom environment for your needs You can use if to local development, CI/CD or even production.
2 lines (1 loc) • 2.01 kB
JavaScript
import{_ as o,u as t,a as s}from"./index.js";import i from"consola";import{defineCommand as r}from"citty";import{r as n,g as a}from"./naming-DKrt6FCF.js";import"@sentry/node";import"unstorage";import"unstorage/drivers/fs";import"os";import"confbox";import"fs/promises";import"unstorage/drivers/utils/node-fs";import"joi";import"ofetch";import"uuid";import"url";import"path";import"fs";import"node:path";import"child_process";const{runContainer:e}=s(),{getConfig:p}=t(),m={apps:function(t,s,i){return o(this,void 0,void 0,(function*(){const{expose:o,task:r}=s.apps[t],n=[];o&&o.map((o=>{"public"===o.access&&o.port&&n.push(`${o.port}:${o.port}`)})),d(r,s,Object.assign(Object.assign({},i),{ports:n}))}))},jobs:function(t,s,i){return o(this,void 0,void 0,(function*(){s.jobs[t].tasks.map((o=>()=>Array.isArray(o)?Promise.all(o.map((o=>d(o,s)))):d(o,s,i)),[]).forEach((o=>o()))}))},tasks:d},c=r({meta:{name:"run",description:"Run tasks, jobs and apps"},args:{detach:{description:"Run in background in detached mode",alias:"d",type:"boolean"},name:{description:"Name of tasks, jobs and apps",type:"positional",required:!0}},run(t){return o(this,arguments,void 0,(function*({args:o}){const t=o.name,s=p(),{category:r,names:e}=n(t,s);if(!s)return i.log("No config found");if(!r||!e.length)return i.error(`No task, job or app found with name '${t}'`);const c={detach:!!o.detach,silentLog:!!o.detach,onSpawn:o.detach?()=>{i.success("Process Started")}:void 0};yield Promise.all(e.map((o=>{m[r](o,s,Object.assign(Object.assign({},c),{containerName:a(r,o)}))})))}))}});function d(t,s,i){return o(this,void 0,void 0,(function*(){var o,r;const n=null==s?void 0:s.tasks[t];if(!n)throw"No task found for name: "+t;const a=null===(r=null===(o=null==s?void 0:s.images)||void 0===o?void 0:o[(null==n?void 0:n.image)||"default"])||void 0===r?void 0:r.name;if(!a)throw"No image found for name: "+t;e(Object.assign({remove:!0,taskName:t,image:a,env:n.env,script:n.script,volumes:["./:/app"],storeLogs:!0},i))}))}export{c as run};