@omer-x/buttler
Version:
automates CI/CD workflows using Docker and GitHub webhooks
1 lines • 4.09 kB
JavaScript
(()=>{var e={};e.id=431,e.ids=[431],e.modules={10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},34454:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>m,routeModule:()=>u,serverHooks:()=>d,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>p});var n={};r.r(n),r.d(n,{GET:()=>c});var a=r(96559),o=r(48088),i=r(37719),s=r(59643);async function c(e){let t=e.nextUrl.searchParams,r=t.get("container");if(!r)throw Error("container id is not provided");let n=parseInt(t.get("limit")??"100"),a=await (0,s.B8)(r,isNaN(n)?100:n);return Response.json({content:a})}let u=new a.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/logs/route",pathname:"/api/logs",filename:"route",bundlePath:"app/api/logs/route"},resolvedPagePath:"/home/omer/Projects/buttler/src/app/api/logs/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:l,workUnitAsyncStorage:p,serverHooks:d}=u;function m(){return(0,i.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:p})}},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},59643:(e,t,r)=>{"use strict";r.d(t,{B8:()=>f,Lp:()=>P,Nc:()=>w,VS:()=>x,ZP:()=>p,_w:()=>l,aH:()=>d,g$:()=>m,od:()=>g,pb:()=>v});var n=r(76760),a=r.n(n),o=r(66400),i=r.n(o),s=r(49629);let c=new(i()),u={};function l(e,t,r,n,o){let i=a().join(t,"Dockerfile"),l=s.pack(a().dirname(i));return new Promise((t,a)=>{c.buildImage(l,{t:`${e}:latest`,buildargs:r,networkmode:n},(r,n)=>r?a(r):n?void(n.on("data",e=>{if(!o)return;let t=JSON.parse(e.toString("utf-8").trim());"stream"in t&&console.log(t.stream)}),n.on("end",()=>{c.getImage(`${e}:latest`).inspect().then(()=>t(!0)).catch(()=>t(!1))}),n.on("error",e=>{"UPDATE"===e?t(!1):a(e)}),u[e]=n):a(Error("no stream")))})}function p(e){return new Promise((t,r)=>{c.pull(`${e}:latest`,(e,n)=>{if(e)return r(e);c.modem.followProgress(n,(e,n)=>{if(e)return r(e);t(n)})})})}async function d(e){try{let t=c.getImage(e);await t.remove()}catch{}}async function m(e,t,r,n,a,o){let i=await c.createContainer({name:e,Image:t,Env:Object.entries(r).map(([e,t])=>`${e}=${t}`),HostConfig:{PortBindings:Object.fromEntries(Object.entries(n).map(([e,t])=>[`${t}/tcp`,[{HostIp:"127.0.0.1",HostPort:e}]])),RestartPolicy:{Name:"always"},Binds:Object.entries(a).map(([e,t])=>`${e}:${t}`)},Tty:!0});return await Promise.all(o.map(e=>h(i.id,e))),await i.start(),i.id}async function g(e){await c.getContainer(e).remove({force:!0})}function w(e,t){return new Promise((r,n)=>{c.getContainer(e).exec({Cmd:t,AttachStdout:!0,AttachStderr:!0,Tty:!0},(e,t)=>{if(e||!t)return n(e);t.start({Tty:!0},(e,t)=>{if(e||!t)return n(e);let a="";t.on("data",e=>{a+=e.toString()}),t.on("end",()=>{r(a)})})})})}function f(e,t){let r=c.getContainer(e);return new Promise((e,n)=>{r.logs({follow:!1,stdout:!0,stderr:!0,tail:t},(t,r)=>t?n(t):r?void e(r.toString()):n(Error("stream is undefined")))})}async function v(e){await c.createVolume({Name:e,Driver:"local"})}async function x(e,t=[]){let r=await c.createNetwork({Name:e,Driver:"bridge",CheckDuplicate:!0,Internal:!1,Attachable:!0});return await Promise.all(t.map(e=>h(e,r.id))),r}async function P(e,t=[]){let r=c.getNetwork(e);await Promise.all(t.map(e=>y(e,r.id))),await r.remove()}async function h(e,t){let r=c.getNetwork(t);await r.connect({Container:e})}async function y(e,t){let r=c.getNetwork(t);await r.disconnect({Container:e})}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66400:e=>{"use strict";e.exports=require("dockerode")},76760:e=>{"use strict";e.exports=require("node:path")},78335:()=>{},94735:e=>{"use strict";e.exports=require("events")},96487:()=>{},96559:(e,t,r)=>{"use strict";e.exports=r(44870)}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[719,629],()=>r(34454));module.exports=n})();