@enspirit/emb
Version:
A replacement for our Makefile-for-monorepos
39 lines (38 loc) • 1.21 kB
JavaScript
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();
}
}