NODEDC_PLATFORM/services/map-gateway/runtime-entrypoint.mjs

18 lines
650 B
JavaScript

import { spawn } from "node:child_process";
import { mkdir, chown } from "node:fs/promises";
const cacheDir = String(process.env.MAP_CACHE_DIR || "").trim();
if (cacheDir) {
await mkdir(cacheDir, { recursive: true });
await chown(cacheDir, 1000, 1000);
}
if (process.getuid?.() === 0) {
process.setgid(1000);
process.setuid(1000);
}
const [command, ...args] = process.argv.slice(2);
if (!command) throw new Error("map_gateway_runtime_command_required");
const child = spawn(command, args, { stdio: "inherit" });
child.on("exit", (code, signal) => process.exitCode = code ?? (signal ? 1 : 0));
child.on("error", (error) => { throw error; });