| import { formatRuntimeStatusWithDetails } from "../infra/runtime-status.ts"; | |
| export type ServiceRuntimeLike = { | |
| status?: string; | |
| state?: string; | |
| subState?: string; | |
| pid?: number; | |
| lastExitStatus?: number; | |
| lastExitReason?: string; | |
| lastRunResult?: string; | |
| lastRunTime?: string; | |
| detail?: string; | |
| }; | |
| export function formatRuntimeStatus(runtime: ServiceRuntimeLike | undefined): string | null { | |
| if (!runtime) { | |
| return null; | |
| } | |
| const details: string[] = []; | |
| if (runtime.subState) { | |
| details.push(`sub ${runtime.subState}`); | |
| } | |
| if (runtime.lastExitStatus !== undefined) { | |
| details.push(`last exit ${runtime.lastExitStatus}`); | |
| } | |
| if (runtime.lastExitReason) { | |
| details.push(`reason ${runtime.lastExitReason}`); | |
| } | |
| if (runtime.lastRunResult) { | |
| details.push(`last run ${runtime.lastRunResult}`); | |
| } | |
| if (runtime.lastRunTime) { | |
| details.push(`last run time ${runtime.lastRunTime}`); | |
| } | |
| if (runtime.detail) { | |
| details.push(runtime.detail); | |
| } | |
| return formatRuntimeStatusWithDetails({ | |
| status: runtime.status, | |
| pid: runtime.pid, | |
| state: runtime.state, | |
| details, | |
| }); | |
| } | |