UNPKG

@enspirit/emb

Version:

A replacement for our Makefile-for-monorepos

39 lines (38 loc) 1.21 kB
import { getContext } from '../../../index.js'; import * as z from 'zod'; import { ExecuteLocalCommandOperation } from '../../../monorepo/index.js'; import { AbstractOperation } from '../../../operations/index.js'; /** * https://docs.docker.com/reference/cli/docker/compose/ps/ */ const schema = z .object({ all: z.boolean().optional().describe('Sow all stopped containers'), }) .optional(); export class ComposePsOperation extends AbstractOperation { constructor() { super(schema); } async _run(input) { const { monorepo } = getContext(); const command = ['docker', 'compose', 'ps']; if (input?.all) { command.push('--all'); } monorepo.setTaskRenderer('silent'); const manager = monorepo.taskManager(); manager.add([ { async task() { return monorepo.run(new ExecuteLocalCommandOperation(), { script: command.join(' '), workingDir: monorepo.rootDir, }); }, title: 'Listing running containers', }, ]); await manager.runAll(); } }