import { defineCommand } from "citty"; import { Listr } from "listr2"; import { assertManagedNamespace } from "../lib/apply"; import { getProject, listManagedDeployments, restartDeployment, } from "../lib/shared"; export const restart = defineCommand({ meta: { name: "restart", description: "Roll out a restart for managed deployments", }, async run() { await assertManagedNamespace(getProject()); const deployments = await listManagedDeployments(); if (deployments.length === 0) return; await new Listr([ { title: "Restart deployments", task: (_ctx, task) => { task.output = `${deployments.length} deployments queued`; return task.newListr( deployments.map((deployment) => ({ title: `Deployment ${deployment.metadata?.name}`, task: () => restartDeployment(deployment.metadata!.name!), })), { concurrent: false, exitOnError: true }, ); }, }, ]).run(); }, });