refactor(cron-cli): share enable-disable command wiring

This commit is contained in:
Peter Steinberger
2026-02-18 22:49:28 +00:00
parent 8369913c7a
commit bdb13d6c4c
2 changed files with 61 additions and 39 deletions

View File

@@ -4,6 +4,33 @@ import { defaultRuntime } from "../../runtime.js";
import { addGatewayClientOptions, callGatewayFromCli } from "../gateway-rpc.js";
import { warnIfCronSchedulerDisabled } from "./shared.js";
function registerCronToggleCommand(params: {
cron: Command;
name: "enable" | "disable";
description: string;
enabled: boolean;
}) {
addGatewayClientOptions(
params.cron
.command(params.name)
.description(params.description)
.argument("<id>", "Job id")
.action(async (id, opts) => {
try {
const res = await callGatewayFromCli("cron.update", opts, {
id,
patch: { enabled: params.enabled },
});
defaultRuntime.log(JSON.stringify(res, null, 2));
await warnIfCronSchedulerDisabled(opts);
} catch (err) {
defaultRuntime.error(danger(String(err)));
defaultRuntime.exit(1);
}
}),
);
}
export function registerCronSimpleCommands(cron: Command) {
addGatewayClientOptions(
cron
@@ -24,45 +51,18 @@ export function registerCronSimpleCommands(cron: Command) {
}),
);
addGatewayClientOptions(
cron
.command("enable")
.description("Enable a cron job")
.argument("<id>", "Job id")
.action(async (id, opts) => {
try {
const res = await callGatewayFromCli("cron.update", opts, {
id,
patch: { enabled: true },
});
defaultRuntime.log(JSON.stringify(res, null, 2));
await warnIfCronSchedulerDisabled(opts);
} catch (err) {
defaultRuntime.error(danger(String(err)));
defaultRuntime.exit(1);
}
}),
);
addGatewayClientOptions(
cron
.command("disable")
.description("Disable a cron job")
.argument("<id>", "Job id")
.action(async (id, opts) => {
try {
const res = await callGatewayFromCli("cron.update", opts, {
id,
patch: { enabled: false },
});
defaultRuntime.log(JSON.stringify(res, null, 2));
await warnIfCronSchedulerDisabled(opts);
} catch (err) {
defaultRuntime.error(danger(String(err)));
defaultRuntime.exit(1);
}
}),
);
registerCronToggleCommand({
cron,
name: "enable",
description: "Enable a cron job",
enabled: true,
});
registerCronToggleCommand({
cron,
name: "disable",
description: "Disable a cron job",
enabled: false,
});
addGatewayClientOptions(
cron