'use strict'; /* * pruefe-version.js – läuft vor jedem Build (prebuild) * ---------------------------------------------------- * Bricht ab, wenn die Version aus package.json schon als Release in Gitea * veröffentlicht ist. Ein neuer Build derselben Version ergäbe andere Dateien * mit neuer Signatur – die bereits veröffentlichten EXEs würden dann nicht mehr * dazu passen und kein Launcher nähme das Update an. * * Ausnahme (z. B. Testbuild, der nie hochgeladen wird): AEROMC_GLEICHE_VERSION=1 */ const path = require('path'); const API = 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/AeroMc-Launcher/releases?limit=50'; const version = require(path.join(__dirname, '..', 'package.json')).version; (async () => { if (process.env.AEROMC_GLEICHE_VERSION === '1') return; let releases; try { const res = await fetch(API, { headers: { 'User-Agent': 'AeroMC-Release', Accept: 'application/json' } }); if (!res.ok) throw new Error('HTTP ' + res.status); releases = await res.json(); } catch (err) { console.warn(`\n! Gitea nicht erreichbar (${err.message}) – Versionsprüfung übersprungen.`); return; } const norm = (v) => String(v || '').trim().replace(/^v/i, ''); const treffer = (releases || []).find((r) => !r.draft && norm(r.tag_name) === version); if (treffer) { console.error(`\n✖ Version ${version} ist bereits in Gitea veröffentlicht (${treffer.published_at}).`); console.error(' Bitte zuerst die Versionsnummer in package.json erhöhen – sonst passen die'); console.error(' veröffentlichten Dateien nicht mehr zur Signatur.'); process.exit(1); } console.log(`» Version ${version} ist noch nicht veröffentlicht – Build läuft.`); })();