refactor(cli): dedupe daemon install finalize

This commit is contained in:
Peter Steinberger
2026-02-15 16:49:38 +00:00
parent 08f16da8d7
commit bf61d94083
3 changed files with 70 additions and 51 deletions

View File

@@ -79,3 +79,32 @@ export function createDaemonActionContext(params: { action: DaemonAction; json:
return { stdout, warnings, emit, fail };
}
export async function installDaemonServiceAndEmit(params: {
serviceNoun: string;
service: GatewayService;
warnings: string[];
emit: (payload: Omit<DaemonActionResponse, "action">) => void;
fail: (message: string, hints?: string[]) => void;
install: () => Promise<void>;
}) {
try {
await params.install();
} catch (err) {
params.fail(`${params.serviceNoun} install failed: ${String(err)}`);
return;
}
let installed = true;
try {
installed = await params.service.isLoaded({ env: process.env });
} catch {
installed = true;
}
params.emit({
ok: true,
result: "installed",
service: buildDaemonServiceSnapshot(params.service, installed),
warnings: params.warnings.length ? params.warnings : undefined,
});
}