import { execSync } from "node:child_process"; function gitCommit() { try { return execSync("git rev-parse --short HEAD", { encoding: "utf8" }).trim(); } catch { return ""; } } async function main() { const token = process.env.SERVER_UPDATE_TOKEN; const required = process.env.RELEASE_VERSION_UPDATE_REQUIRED === "true"; if (!token) { if (required) { throw new Error("SERVER_UPDATE_TOKEN is required after deploy verification."); } console.log("SERVER_UPDATE_TOKEN is not set. Skipping server version update."); return; } const version = process.env.RELEASE_VERSION || process.env.RELEASE_EXPECTED_COMMIT || process.env.GITHUB_SHA || gitCommit(); if (!version) { throw new Error("Could not determine release version for server update."); } const baseUrl = process.env.SERVER_UPDATE_URL || "https://api-v2.truckwash.io/master/api/worker/update-version"; const url = new URL(baseUrl); url.searchParams.set("version", version); const response = await fetch(url, { method: "GET", headers: { Authorization: `Bearer ${token}`, "Cache-Control": "no-cache", }, }); const body = await response.text(); if (!response.ok) { throw new Error(`Server version update failed with HTTP ${response.status}: ${body}`); } console.log(`Server version updated to ${version}.`); } main().catch((error) => { console.error(error instanceof Error ? error.stack || error.message : error); process.exit(1); });