import { exec } from "child_process"; export interface DockerStatus { available: boolean; version?: string; error?: string; } export function checkDocker(): Promise { return new Promise((resolve) => { exec("docker version --format '{{.Server.Version}}'", (err, stdout) => { if (err) { resolve({ available: false, error: "Docker is not running or not installed.", }); return; } resolve({ available: true, version: stdout.trim().replace(/'/g, ""), }); }); }); } export function dockerDownloadUrl(): string { switch (process.platform) { case "win32": return "https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe"; case "darwin": return process.arch === "arm64" ? "https://desktop.docker.com/mac/main/arm64/Docker.dmg" : "https://desktop.docker.com/mac/main/amd64/Docker.dmg"; default: return "https://docs.docker.com/engine/install/"; } }