ZockerAnstalt und Analyse: Symbole unter den richtigen Namen

Der erste Entwurf legte sie unter eigenen Namen daneben
(dogfather-zocker-192.png). Die Dateien lagen da, die Manifeste zeigten
weiter auf icon-192.png -- das neue Symbol waere nie angekommen. Der
Kopiervorgang meldete trotzdem 6 Symbole kopiert.

Jetzt werden die vorhandenen Namen ueberschrieben. Damit greifen
Manifest und HTML ohne weitere Aenderung, und es gibt keine zweite
Stelle, an der ein Verweis uebersehen werden kann. Fehlt ein erwarteter
Name, wird das gemeldet statt still uebergangen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-05 11:48:17 +02:00
co-authored by Claude Opus 5
parent 3decdab2f2
commit 7fe6a51233
+58 -9
View File
@@ -23,7 +23,7 @@
Aufrufen mit: node tools/app-symbole-einbinden.mjs Aufrufen mit: node tools/app-symbole-einbinden.mjs
=================================================================== */ =================================================================== */
import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync, copyFileSync } from "node:fs"; import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync, copyFileSync, unlinkSync } from "node:fs";
import { join, dirname } from "node:path"; import { join, dirname } from "node:path";
import { fileURLToPath } from "node:url"; import { fileURLToPath } from "node:url";
import { APPS, FARBEN, STIL_JE_APP, STILE } from "./app-symbole.mjs"; import { APPS, FARBEN, STIL_JE_APP, STILE } from "./app-symbole.mjs";
@@ -233,19 +233,68 @@ for (const rel of htmlSeiten()) {
/* --------------------------------------------------------------------- /* ---------------------------------------------------------------------
3. Die zwei Apps in eigenen Ordnern 3. Die zwei Apps in eigenen Ordnern
------------------------------------------------------------------ */ ------------------------------------------------------------------ */
/* Je Projekt: welcher Dateiname DORT benutzt wird -> welche Groesse von
uns dorthin gehoert. Die Namen stammen aus dem jeweiligen Manifest,
nicht aus einer Vermutung. */
const AUSWAERTS = [ const AUSWAERTS = [
{ name: "Dogi's ZockerAnstalt", schluessel: "zocker", {
ziel: "C:/Users/qciga/Documents/Obelix/Spielehalle/public/icons" }, name: "Dogi's ZockerAnstalt", schluessel: "zocker",
{ name: "DogFather Analyse", schluessel: "analyse", ziel: "C:/Users/qciga/Documents/Obelix/Spielehalle/public/icons",
ziel: "C:/Users/qciga/Documents/Obelix/Analyse/logos" }, namen: {
"icon-192.png": "192",
"icon-512.png": "512",
"icon-maskable-192.png": "192-maskable",
"icon-maskable-512.png": "512-maskable",
"apple-touch-icon.png": "180",
},
},
{
name: "DogFather Analyse", schluessel: "analyse",
ziel: "C:/Users/qciga/Documents/Obelix/Analyse/logos",
namen: {
"pwa-icon-192.png": "192",
"pwa-icon-512.png": "512",
"pwa-icon-maskable-512.png": "512-maskable",
"pwa-apple-touch-icon.png": "180",
"pwa-favicon-32.png": "32",
},
},
]; ];
for (const { name, schluessel, ziel } of AUSWAERTS) { /* DIE VORHANDENEN NAMEN ÜBERSCHREIBEN, keine neuen danebenlegen.
Der erste Entwurf legte die Symbole unter eigenen Namen ab
(`dogfather-zocker-192.png`). Das Ergebnis: Die Dateien lagen da, das
Manifest der ZockerAnstalt zeigte weiter auf `icon-192.png` -- und
das neue Symbol wäre nie irgendwo angekommen. Aufgefallen erst beim
Nachsehen, nicht beim Kopieren; der Kopiervorgang meldete brav
"6 Symbole kopiert".
Jetzt werden die Namen überschrieben, die dort schon benutzt werden.
Damit greifen Manifest, HTML und alles andere ohne eine einzige
weitere Änderung -- und es gibt keine zweite Stelle, an der jemand
einen Verweis übersehen kann.
Fehlt ein erwarteter Name, wird das gemeldet statt still übergangen:
Ein Symbol, das niemand einbindet, ist kein erledigter Auftrag. */
for (const { name, schluessel, ziel, namen } of AUSWAERTS) {
if (!existsSync(ziel)) { berichte.push(` ? ${name}: ${ziel} gibt es nicht`); continue; } if (!existsSync(ziel)) { berichte.push(` ? ${name}: ${ziel} gibt es nicht`); continue; }
for (const g of ["192", "512", "192-maskable", "512-maskable", "180", "32"]) { let ersetzt = 0;
copyFileSync(join(SYM, `${schluessel}-${g}.png`), join(ziel, `dogfather-${schluessel}-${g}.png`)); const fehlend = [];
for (const [dort, meins] of Object.entries(namen)) {
const quelle = join(SYM, `${schluessel}-${meins}.png`);
const zielDatei = join(ziel, dort);
if (!existsSync(zielDatei)) { fehlend.push(dort); continue; }
copyFileSync(quelle, zielDatei);
ersetzt++;
} }
berichte.push(` ✓ ${name}: 6 Symbole nach ${ziel.split("/").slice(-3).join("/")} kopiert`); /* Die alten Dateien mit eigenem Namen aus dem ersten Entwurf wegräumen. */
for (const g of ["192", "512", "192-maskable", "512-maskable", "180", "32"]) {
const alt = join(ziel, `dogfather-${schluessel}-${g}.png`);
if (existsSync(alt)) { try { unlinkSync(alt); } catch { /* egal */ } }
}
berichte.push(` ${fehlend.length ? "!" : "✓"} ${name}: ${ersetzt} Symbole ersetzt`
+ (fehlend.length ? ` — NICHT GEFUNDEN: ${fehlend.join(", ")}` : ""));
} }
/* --------------------------------------------------------------------- /* ---------------------------------------------------------------------