mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 16:20:42 +00:00
Several `openclaw <parent>` commands (channels, plugins, approvals, devices, cron, mcp) were exiting with code 1 when invoked bare, while printing the same help-style content that `<parent> --help` produces (which exits 0). This broke `&&` chains and surfaced a misleading `ELIFECYCLE Command failed with exit code 1.` line under pnpm. Add a small `applyParentDefaultHelpAction(cmd)` helper in `src/cli/program/parent-default-help.ts` that attaches a default action which prints the parent's own help and sets `process.exitCode = 0`. The helper is a no-op when the parent already has its own action (e.g. `agents` defaulting to `agents list`), so existing intentional defaults are preserved. Apply it to the six core parents listed in #73077.
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import type { Command } from "commander";
|
|
import { formatDocsLink } from "../../terminal/links.js";
|
|
import { theme } from "../../terminal/theme.js";
|
|
import { applyParentDefaultHelpAction } from "../program/parent-default-help.js";
|
|
import {
|
|
registerCronAddCommand,
|
|
registerCronListCommand,
|
|
registerCronStatusCommand,
|
|
} from "./register.cron-add.js";
|
|
import { registerCronEditCommand } from "./register.cron-edit.js";
|
|
import { registerCronSimpleCommands } from "./register.cron-simple.js";
|
|
|
|
export function registerCronCli(program: Command) {
|
|
const cron = program
|
|
.command("cron")
|
|
.description("Manage cron jobs (via Gateway)")
|
|
.addHelpText(
|
|
"after",
|
|
() =>
|
|
`\n${theme.muted("Docs:")} ${formatDocsLink("/cli/cron", "docs.openclaw.ai/cli/cron")}\n${theme.muted("Upgrade tip:")} run \`openclaw doctor --fix\` to normalize legacy cron job storage.\n`,
|
|
);
|
|
|
|
registerCronStatusCommand(cron);
|
|
registerCronListCommand(cron);
|
|
registerCronAddCommand(cron);
|
|
registerCronSimpleCommands(cron);
|
|
registerCronEditCommand(cron);
|
|
|
|
applyParentDefaultHelpAction(cron);
|
|
}
|