mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 03:57:13 -05:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import path from "path";
|
|
import fs from "fs";
|
|
import fetch from "node-fetch";
|
|
import { ServiceConfig } from "./types";
|
|
|
|
const servicesPath = path.join(__dirname, "..", "infra", "services.json");
|
|
|
|
function loadServices(): ServiceConfig[] {
|
|
const raw = fs.readFileSync(servicesPath, "utf-8");
|
|
return JSON.parse(raw) as ServiceConfig[];
|
|
}
|
|
|
|
async function checkService(service: ServiceConfig) {
|
|
const url = `https://${service.domain}${service.healthPath}`;
|
|
try {
|
|
const res = await fetch(url, { method: "GET" });
|
|
const statusText = res.statusText || "";
|
|
console.log(
|
|
`[OK] ${service.id.padEnd(8)} ${res.status} ${statusText} - ${url}`
|
|
);
|
|
} catch (err) {
|
|
console.log(
|
|
`[FAIL] ${service.id.padEnd(8)} - ${(err as Error).message} - ${url}`
|
|
);
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
const services = loadServices();
|
|
console.log("\n🌡 Checking health of all services:\n");
|
|
|
|
for (const svc of services) {
|
|
await checkService(svc);
|
|
}
|
|
|
|
console.log("\nDone.\n");
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error(err);
|
|
process.exit(1);
|
|
});
|