Files
clawdbot/src/infra/os-summary.ts
2026-01-10 23:32:07 +01:00

32 lines
883 B
TypeScript

import { spawnSync } from "node:child_process";
import os from "node:os";
export type OsSummary = {
platform: NodeJS.Platform;
arch: string;
release: string;
label: string;
};
function safeTrim(value: unknown): string {
return typeof value === "string" ? value.trim() : "";
}
function macosVersion(): string {
const res = spawnSync("sw_vers", ["-productVersion"], { encoding: "utf-8" });
const out = safeTrim(res.stdout);
return out || os.release();
}
export function resolveOsSummary(): OsSummary {
const platform = os.platform();
const release = os.release();
const arch = os.arch();
const label = (() => {
if (platform === "darwin") return `macos ${macosVersion()} (${arch})`;
if (platform === "win32") return `windows ${release} (${arch})`;
return `${platform} ${release} (${arch})`;
})();
return { platform, arch, release, label };
}