Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import { stat } from "node:fs/promises"; import { loadConfig } from "./config.js"; import { buildApp } from "./app.js"; import { prisma } from "./lib/prisma.js"; async function main() { const config = loadConfig(); try { const st = await stat(config.gpxLocalRoot); if (!st.isDirectory()) { throw new Error(`GPX_LOCAL_ROOT is not a directory: ${config.gpxLocalRoot}`); } } catch (err) { if (err instanceof Error && err.message.startsWith("GPX_LOCAL_ROOT")) { throw err; } throw new Error( `GPX_LOCAL_ROOT must point to an existing directory (create it and add .gpx files): ${config.gpxLocalRoot}`, ); } const app = await buildApp(config); try { await app.listen({ port: config.port, host: "0.0.0.0" }); } catch (err) { app.log.error(err); await prisma.$disconnect().catch(() => undefined); process.exit(1); } const shutdown = async (signal: string) => { app.log.info({ signal }, "shutting down"); await app.close(); await prisma.$disconnect(); process.exit(0); }; process.once("SIGINT", () => void shutdown("SIGINT")); process.once("SIGTERM", () => void shutdown("SIGTERM")); } void main(); |