Upload via GUI (202 Dateien)

This commit is contained in:
2026-10-11 07:05:39 +00:00
parent e7f8371b5f
commit 4a7a619f35
2 changed files with 56 additions and 20 deletions
+32 -17
View File
@@ -8,6 +8,15 @@
* mit neuer Signatur – die bereits veröffentlichten EXEs würden dann nicht mehr
* dazu passen und kein Launcher nähme das Update an.
*
* Außerdem sagt es, wie das Release in Gitea heißen muss:
*
* fertige Version 1.2.4 Tag 1.2.4
* Vorabfassung 1.2.4-beta.1 Tag 0.0.0-1.2.4-beta.1 + Haken "Pre-Release"
*
* Der Vorsatz "0.0.0-" bei Vorabfassungen ist Pflicht: Launcher bis 1.2.3 kennen
* das Pre-Release-Feld nicht und würden "1.2.4-beta.1" als normales Update an
* ALLE Nutzer verteilen (siehe src/updater.js).
*
* Ausnahme (z. B. Testbuild, der nie hochgeladen wird): AEROMC_GLEICHE_VERSION=1
*/
@@ -15,25 +24,31 @@ 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;
const vorab = /^\d+(?:\.\d+){0,2}-/.test(version);
const tag = vorab ? `0.0.0-${version}` : 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);
if (process.env.AEROMC_GLEICHE_VERSION !== '1') {
try {
const res = await fetch(API, { headers: { 'User-Agent': 'AeroMC-Release', Accept: 'application/json' } });
if (!res.ok) throw new Error('HTTP ' + res.status);
const norm = (v) => String(v || '').trim().replace(/^v/i, '').replace(/^0\.0\.0-(?=\d)/, '');
const treffer = (await res.json() || []).find((r) => !r.draft && norm(r.tag_name) === version);
if (treffer) {
console.error(`\n✖ Version ${version} ist bereits in Gitea veröffentlicht (Tag ${treffer.tag_name}, ${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);
}
} catch (err) {
console.warn(`\n! Gitea nicht erreichbar (${err.message}) – Versionsprüfung übersprungen.`);
}
}
console.log(`» Version ${version} ist noch nicht veröffentlicht – Build läuft.`);
if (vorab) {
console.log(` VORABFASSUNG – in Gitea so veröffentlichen: Tag ${tag} und Haken bei "Als Pre-Release kennzeichnen".`);
console.log(' Niemals mit dem Tag der reinen Versionsnummer: Ältere Launcher würden die Beta sonst an alle verteilen.');
} else {
console.log(` In Gitea veröffentlichen mit dem Tag ${tag} (ohne Pre-Release-Haken).`);
}
})();