44 lines
1.8 KiB
JavaScript
44 lines
1.8 KiB
JavaScript
'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}`);
|