'use strict'; /* * write-build-config.js – Vorgaben aus der Umgebung ins Paket schreiben * --------------------------------------------------------------------- * Läuft automatisch vor jedem Build und erzeugt src/build-config.json. * * Damit landen Adresse und Token der CurseForge-Weiterleitung im fertigen * Paket, ohne je im Quelltext oder in einem Repository zu stehen. Gesetzt * werden sie beim Bauen als Umgebungsvariablen: * * PowerShell: * $env:AEROMC_CF_PROXY_URL = "https://cf.example.de" * $env:AEROMC_CF_PROXY_TOKEN = "..." * npm run build * * bash: * AEROMC_CF_PROXY_URL=https://cf.example.de AEROMC_CF_PROXY_TOKEN=... npm run build * * Ohne gesetzte Variablen wird eine leere Vorgabe geschrieben – der Launcher * verhält sich dann wie bisher und jeder Nutzer trägt selbst etwas ein. * * Zur Ehrlichkeit: Ein Token im ausgelieferten Paket ist auslesbar. Es hält * Gelegenheitsnutzer ab, keine entschlossenen. Der API-Schlüssel selbst * bleibt davon unberührt – der liegt ausschließlich auf dem Server. */ const fs = require('fs'); const path = require('path'); const ziel = path.join(__dirname, '..', 'src', 'build-config.json'); const config = { curseforgeProxyUrl: String(process.env.AEROMC_CF_PROXY_URL || '').trim().replace(/\/+$/, ''), curseforgeProxyToken: String(process.env.AEROMC_CF_PROXY_TOKEN || '').trim(), }; fs.writeFileSync(ziel, JSON.stringify(config, null, 2) + '\n', 'utf8'); // Den Token selbst nie ausgeben – Build-Protokolle landen schnell woanders. const wo = config.curseforgeProxyUrl || '(keine)'; const tok = config.curseforgeProxyToken ? 'gesetzt (' + config.curseforgeProxyToken.length + ' Zeichen)' : 'keins'; console.log(`build-config.json geschrieben – Weiterleitung: ${wo}, Token: ${tok}`);