From 6e46a08543b57bede8d0985ec01fddda559eb256 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Sun, 20 Sep 2026 22:51:21 +0200 Subject: [PATCH] Portnummern werden abgeleitet, nicht mehr vergeben MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gemessen: 165 Pruefdateien, 129 verschiedene Nummern -- NEUNZEHN doppelt, vier davon dreifach. Niemand hatte das gewollt; jede neue Pruefung wurde von einer vorhandenen abgeschrieben, und die Nummer kam mit. Meine eigene Notiz sagte "sieben" -- auch eine Bestandsliste altert. Der Waechter faengt den Schaden ab, aber er kann nur melden, was schon passiert ist: Zwei Pruefungen mit derselben Nummer koennen nie gleichzeitig laufen, und ein liegengebliebener Prozess der einen laesst die andere abbrechen mit einer Meldung, die wie ein Befund aussieht. Genau das ist mir am 20.09. zweimal passiert. Jetzt leitet jede Datei ihre Nummer aus ihrer STELLE IM ALPHABET ab (eigenerPort in helfer-port.mjs), zwei je Datei. Nicht ueber eine Pruefsumme: Bei 165 Namen in 4900 Nummern waeren nach dem Geburtstagsproblem rund DREI Zusammenstoesse zu erwarten -- ein Hash tauscht eine sichtbare Doppelung gegen eine unsichtbare. Die Stelle im Alphabet ist eindeutig von der Bauart her. --- ZWEI FEHLER AUF DEM WEG, BEIDE LEHRREICH ------------------------- 1. DER ERSTE VERSUCH WAR GRUEN UND KAPUTT. Ersetzt wurde mit einem Muster: "([^"]*4231[^"]*)". Das hielt { host: "127.0.0.1", port: 4231, path: "/404.html" } fuer eine Zeichenkette -- ein Muster kann eine oeffnende nicht von einer schliessenden Anfuehrung unterscheiden. Heraus kam { host: "127.0.0.1`, port: ${PORT}, path: `/404.html" } also GUELTIGER Code ohne port-Feld. `node --check` sagte gruen fuer alle 164 Dateien. Aufgefallen ist es erst, weil ich vier Vertreter gegen eine vorher gemessene Grundlinie laufen liess: pruef-schranke 39/0 vorher, 38/1 nachher. Alles zurueckgenommen und mit einem Zerleger neu gemacht, der weiss, ob eine Stelle Code, Zeichenkette, Vorlage, Kommentar oder regulaerer Ausdruck ist. In pruef-ics stand die Nummer in einem regulaeren Ausdruck -- der wird jetzt gebaut statt hingeschrieben. 2. EIN MODUL, DAS BEIM IMPORTIEREN ARBEITET, IST EINE FALLE. Der zweite Durchgang importierte den ersten, um seine Mechanik zu benutzen -- und fuehrte dessen Hauptlauf gleich mit aus. Die zweiten Nummern wurden dadurch als erste behandelt, zwei Aufrufe bekamen dieselbe Nummer, und in pruef-content stand `const PORT` zweimal. --- WAS DAS DAUERHAFT HAELT ----------------------------------------- pruef-portnummern.mjs (neu, 8 Pruefungen) fragt nicht "welche Nummern sind doppelt", sondern "wer traegt ueberhaupt noch eine von Hand ein" und "wer startet einen Server, ohne seine Nummer abzuleiten". Die zweite Frage hat sofort etwas gefunden, das in KEINER Doppelungsliste stand: pruef-push-weg belegte 4341 und 4342, rief den Waechter aber gar nicht auf -- dieselbe Nummer wie pruef-agentur. Eine Liste zeigt nur, was auf ihr steht. Mit Gegenprobe: Eine unbekannte Datei bekommt keine geratene Nummer, sondern einen Abbruch, und eine dritte Nummer je Datei gibt es nicht. --- NACHGEMESSEN ---------------------------------------------------- Sechzehn Pruefungen gegen ihre vorher gemessene Grundlinie, je eine Vertreterin jeder umgestellten Bauweise (eine Nummer, zwei Nummern, Nummer in einer Zeichenkette, in einer Vorlage, in einem regulaeren Ausdruck, dynamische Einfuhr, Nachtlauf mit zwei Laeufen): crew-adresse 132/0 · schranke 39/0 · content 45/0 · entwicklung 46/0 anruf 127/0 · ics 37/0 · push-weg 20/0 · arten 28/0 · video 67/0 kanalzeile 14/0 · agentur 62/0 · spicy 83/0 · creator-anlegen 50/0 push-ziel 10/0 · portnummern 8/0 Alle exakt wie vorher. Zwei waren schon vorher rot und sind es unveraendert geblieben (crew-wand-bild 41/4, teilen 14/3) -- per `git stash` belegt, nicht angenommen. Co-Authored-By: Claude Opus 5 --- server/helfer-port.mjs | 97 ++++++++++++++++++++++++ server/pruef-abbrechen-optik.mjs | 8 +- server/pruef-abbrechen.mjs | 8 +- server/pruef-agentur.mjs | 5 +- server/pruef-alle-sehen-es.mjs | 4 +- server/pruef-alle-wege.mjs | 8 +- server/pruef-alter.mjs | 4 +- server/pruef-ampel.mjs | 8 +- server/pruef-anhaenge.mjs | 4 +- server/pruef-anruf-ruhezeit.mjs | 4 +- server/pruef-anruf.mjs | 4 +- server/pruef-arten.mjs | 5 +- server/pruef-aufbewahrung.mjs | 4 +- server/pruef-aufgaben-vorlagen.mjs | 8 +- server/pruef-aufgabenbrett.mjs | 8 +- server/pruef-auskunft.mjs | 4 +- server/pruef-barrierefrei-workspace.mjs | 8 +- server/pruef-befinden.mjs | 4 +- server/pruef-bereiche-lesend.mjs | 8 +- server/pruef-betreuung.mjs | 8 +- server/pruef-bewerbung.mjs | 4 +- server/pruef-breiten.mjs | 8 +- server/pruef-bremse.mjs | 4 +- server/pruef-browser.mjs | 8 +- server/pruef-buehne.mjs | 8 +- server/pruef-call-kategorien.mjs | 8 +- server/pruef-chat-anhaenge.mjs | 8 +- server/pruef-chat-aufloesen.mjs | 10 +-- server/pruef-chat-ausbau.mjs | 8 +- server/pruef-chat-kanaele.mjs | 10 +-- server/pruef-chat-optik.mjs | 8 +- server/pruef-chat.mjs | 8 +- server/pruef-chatkachel.mjs | 4 +- server/pruef-checkliste.mjs | 8 +- server/pruef-code.mjs | 8 +- server/pruef-community-sicht.mjs | 4 +- server/pruef-content-ansicht.mjs | 8 +- server/pruef-content.mjs | 12 +-- server/pruef-countdown.mjs | 4 +- server/pruef-creator-anlegen.mjs | 5 +- server/pruef-crew-adresse.mjs | 10 +-- server/pruef-crew-wand-bild.mjs | 14 ++-- server/pruef-dabei-optik.mjs | 8 +- server/pruef-entwicklung-kacheln.mjs | 4 +- server/pruef-entwicklung.mjs | 8 +- server/pruef-erwaehnung.mjs | 4 +- server/pruef-eskalation.mjs | 4 +- server/pruef-fassungen.mjs | 4 +- server/pruef-formulare.mjs | 8 +- server/pruef-freie-namen.mjs | 8 +- server/pruef-galerie.mjs | 4 +- server/pruef-gespraech.mjs | 4 +- server/pruef-glocke.mjs | 8 +- server/pruef-grosscheck.mjs | 8 +- server/pruef-haerte.mjs | Bin 19207 -> 19223 bytes server/pruef-handy-teamdogi.mjs | 4 +- server/pruef-handy.mjs | 8 +- server/pruef-haus-seiten.mjs | 4 +- server/pruef-haus-trennung.mjs | 10 +-- server/pruef-highlights.mjs | 4 +- server/pruef-hilfe.mjs | 4 +- server/pruef-hochladen.mjs | 4 +- server/pruef-ics.mjs | 10 +-- server/pruef-installieren.mjs | 4 +- server/pruef-jeder-hat-eine-seite.mjs | 4 +- server/pruef-kachel-universum.mjs | 4 +- server/pruef-kachelraster.mjs | 4 +- server/pruef-kalender.mjs | 8 +- server/pruef-kanaele.mjs | 4 +- server/pruef-kanalzeile.mjs | 10 +-- server/pruef-kopf-messen.mjs | 8 +- server/pruef-kreislauf.mjs | 4 +- server/pruef-ladefehler.mjs | 4 +- server/pruef-leistung-optik.mjs | 8 +- server/pruef-leistung.mjs | 8 +- server/pruef-lesbarkeit.mjs | 8 +- server/pruef-manager-sicht.mjs | 8 +- server/pruef-modi-checkliste.mjs | 8 +- server/pruef-modi-ideen.mjs | 8 +- server/pruef-modi-katalog.mjs | 8 +- server/pruef-modi-kategorien.mjs | 8 +- server/pruef-modi-livecheck.mjs | 8 +- server/pruef-modi-verborgen.mjs | 8 +- server/pruef-nachfrage.mjs | 4 +- server/pruef-nachruesten.mjs | 4 +- server/pruef-nachwuchs.mjs | 4 +- server/pruef-neue-seiten.mjs | 4 +- server/pruef-personen-formular.mjs | 8 +- server/pruef-personen-kachel.mjs | 8 +- server/pruef-personen-liste.mjs | 8 +- server/pruef-personen-loeschen.mjs | 8 +- server/pruef-portnummern.mjs | 97 ++++++++++++++++++++++++ server/pruef-protokoll-klappe.mjs | 8 +- server/pruef-protokoll-loeschen.mjs | 8 +- server/pruef-push-weg.mjs | 20 ++++- server/pruef-push-ziel.mjs | 6 +- server/pruef-rechte-umstellen.mjs | 4 +- server/pruef-rechtetafel.mjs | 4 +- server/pruef-rollen-anlegen.mjs | 4 +- server/pruef-rollen.mjs | 8 +- server/pruef-rollstelle.mjs | 4 +- server/pruef-rueckmeldung.mjs | 10 +-- server/pruef-sackgassen.mjs | 4 +- server/pruef-schranke.mjs | 14 ++-- server/pruef-schritt.mjs | 4 +- server/pruef-schulung.mjs | 8 +- server/pruef-scout-zuteilung.mjs | 8 +- server/pruef-serien.mjs | 8 +- server/pruef-sicherung.mjs | 8 +- server/pruef-sicht.mjs | 8 +- server/pruef-spicy.mjs | 5 +- server/pruef-sprung.mjs | 8 +- server/pruef-start-ansicht.mjs | 8 +- server/pruef-steckbrief.mjs | 8 +- server/pruef-tagesblick.mjs | 8 +- server/pruef-tagesruf.mjs | 8 +- server/pruef-team-ampel.mjs | 8 +- server/pruef-team-stufen.mjs | 8 +- server/pruef-team.mjs | 8 +- server/pruef-teilen.mjs | 6 +- server/pruef-teilnehmer.mjs | 8 +- server/pruef-tempo-workspace.mjs | 8 +- server/pruef-terminregel.mjs | 4 +- server/pruef-treff-start.mjs | 4 +- server/pruef-treff-werkzeuge.mjs | 4 +- server/pruef-treff.mjs | 4 +- server/pruef-treffchat.mjs | 12 ++- server/pruef-uebergang.mjs | 4 +- server/pruef-uebernahme.mjs | 4 +- server/pruef-uebersicht-browser.mjs | 8 +- server/pruef-uebersicht.mjs | 8 +- server/pruef-verborgen.mjs | 8 +- server/pruef-verteilen.mjs | 4 +- server/pruef-video.mjs | 6 +- server/pruef-vorlagen.mjs | 4 +- server/pruef-vorschlaege.mjs | 4 +- server/pruef-wecker.mjs | 8 +- server/pruef-wege-nach-draussen.mjs | 4 +- server/pruef-werdegang.mjs | 4 +- server/pruef-wissen-neu.mjs | 8 +- server/pruef-womit.mjs | 4 +- server/pruef-workspace-seiten.mjs | 8 +- server/pruef-wunschliste.mjs | 4 +- server/pruef-zeitraum.mjs | 4 +- server/pruef-zentrale-ring.mjs | 4 +- server/pruef-zustand-ansicht.mjs | 8 +- server/pruef-zwischenspeicher.mjs | 8 +- 147 files changed, 679 insertions(+), 471 deletions(-) create mode 100644 server/pruef-portnummern.mjs diff --git a/server/helfer-port.mjs b/server/helfer-port.mjs index 6a346214..0eeae650 100644 --- a/server/helfer-port.mjs +++ b/server/helfer-port.mjs @@ -56,3 +56,100 @@ export async function portMussFreiSein(port, wer = "diese Pruefung") { } return port; } + +/* ===================================================================== + WELCHER PORT GEHOERT MIR? (20.09.2026) + + --------------------------------------------------------------------- + WARUM ES DIESE FUNKTION GIBT + + Gemessen am 20.09.2026: 164 Pruefdateien, 129 verschiedene Ports -- + NEUNZEHN Nummern waren doppelt vergeben, eine sogar dreifach + (4186, 4188, 4196, 4198 ...). Niemand hatte das absichtlich getan; + jede neue Pruefung wurde von einer vorhandenen abgeschrieben, und + die Nummer kam mit. + + Der Waechter darueber faengt den Schaden ab -- er bricht ab, statt + gegen einen fremden Server zu messen. Aber er kann nur melden, was + schon passiert ist: Zwei Pruefungen mit derselben Nummer koennen nie + gleichzeitig laufen, und ein liegengebliebener Prozess der einen + laesst die andere mit einer Meldung abbrechen, die wie ein Befund + aussieht. Genau das ist mir heute zweimal passiert. + + EINE GEPFLEGTE NUMMERNLISTE IST DIE FALSCHE LOESUNG. Dieses Haus ist + an abgeschriebenen Listen schon dreimal gescheitert (Spaltenliste + beim Datenumbau, Namensliste in pruef-anruf, Namensliste in + pruef-entwicklung). Eine Liste, die niemand pflegt, kann nicht + veralten -- also wird die Nummer ABGELEITET. + + --------------------------------------------------------------------- + WIE ABGELEITET WIRD, UND WARUM NICHT MIT EINER PRUEFSUMME + + Der naheliegende Weg waere ein Hash des Dateinamens. Nachgerechnet + ist er der schlechtere: Bei 164 Namen in 4900 moeglichen Ports sind + nach dem Geburtstagsproblem rund DREI Zusammenstoesse zu erwarten -- + der Hash tauscht eine sichtbare Doppelung gegen eine unsichtbare. + + Stattdessen: die Stelle im Alphabet. Alle `pruef-*.mjs` im selben + Ordner werden sortiert, und wer an Stelle n steht, bekommt Port + BASIS + n*2. Das ist NICHT ZUFAELLIG EINDEUTIG, sondern eindeutig + von der Bauart her -- zwei Dateien koennen nicht dieselbe Stelle im + Alphabet haben. + + Jede Datei bekommt ZWEI Nummern (nr = 0 und 1). Fuenf Pruefungen + starten heute einen zweiten Server; der braucht dann keinen eigenen + Eintrag irgendwo. + + Nebenwirkung, bewusst in Kauf genommen: Kommt eine neue Pruefung + dazu, verschieben sich die Nummern dahinter. Das ist harmlos -- es + sind Testports, kein Mensch merkt sie sich -- und der Waechter faengt + den einen Fall ab, in dem es zaehlt (ein Prozess von vorhin liegt + noch auf der Nummer). + ===================================================================== */ + +import { readdirSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { basename, dirname } from "node:path"; + +/** Ab hier aufwaerts, zwei je Datei. + * + * NICHT 4100: Der echte Dienst hoert dort, und eine Pruefung, die + * versehentlich dorthin zielt, waere der eine Fehler, den der Waechter + * NICHT erkennen kann -- sie bekaeme brav Antworten. + * + * UND NICHT 4500, wie hier zuerst stand. Nachgemessen reichen die + * bisher von Hand vergebenen Nummern von 4176 bis 4504 -- der Bereich + * 4500-4827 haette sich also mit dem obersten Rest ueberschnitten. + * Das ist der Grund, warum solche Zahlen gemessen und nicht geschaetzt + * werden: "irgendwo ueber 4400" haette plausibel geklungen. */ +const BASIS = 5000; +const PRO_DATEI = 2; + +/** Der Port dieser Datei -- abgeleitet, nicht vergeben. + * + * `meta` ist `import.meta` der aufrufenden Datei. Prueft danach + * gleich, ob er frei ist, und bricht sonst ab (siehe oben). + * + * DRITTER AUSGANG: Findet sich die eigene Datei nicht in der Liste -- + * etwa weil jemand die Funktion aus einem anderen Ordner aufruft --, + * wird NICHT geraten. Eine geratene Nummer waere genau die Doppelung, + * die hier abgeschafft wird. */ +export async function eigenerPort(meta, wer = null, nr = 0) { + const pfad = fileURLToPath(meta.url); + const mein = basename(pfad); + const ordner = dirname(pfad); + const alle = readdirSync(ordner) + .filter((f) => f.startsWith("pruef-") && f.endsWith(".mjs")) + .sort(); + const stelle = alle.indexOf(mein); + if (stelle < 0) { + throw new Error( + `[Port] ${mein} steht nicht in der Liste der Pruefdateien in ${ordner}.\n` + + " Die Nummer wird aus der Stelle im Alphabet abgeleitet -- ohne\n" + + " Stelle gibt es keine Nummer, und geraten wird nicht."); + } + if (nr < 0 || nr >= PRO_DATEI) { + throw new Error(`[Port] Es gibt ${PRO_DATEI} Nummern je Datei (0 und 1), nicht ${nr}.`); + } + return portMussFreiSein(BASIS + stelle * PRO_DATEI + nr, wer || mein.replace(/\.mjs$/, "")); +} diff --git a/server/pruef-abbrechen-optik.mjs b/server/pruef-abbrechen-optik.mjs index 3f5fa393..a2f1ef11 100644 --- a/server/pruef-abbrechen-optik.mjs +++ b/server/pruef-abbrechen-optik.mjs @@ -29,10 +29,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-abopt-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4297, "die Optikpruefung des Abbrechens"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Optikpruefung des Abbrechens"); -process.env.PORT = "4297"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -47,7 +47,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-abbrechen-optik"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4297"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-abbrechen-optik-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-abbrechen.mjs b/server/pruef-abbrechen.mjs index d55a759e..a2a23737 100644 --- a/server/pruef-abbrechen.mjs +++ b/server/pruef-abbrechen.mjs @@ -90,9 +90,9 @@ const altPfad = join(ordner, "alt.db"); /* Der Server wird jetzt AUF DIESER Datei gestartet -- die Umstellung läuft beim Import. */ process.env.WORKSPACE_DB = altPfad; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4295, "die Abbruchpruefung"); -process.env.PORT = "4295"; +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Abbruchpruefung"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -101,7 +101,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 1400)); -const BASIS = "http://127.0.0.1:4295"; +const BASIS = `http://127.0.0.1:${PORT}`; { const p = new DatabaseSync(altPfad); diff --git a/server/pruef-agentur.mjs b/server/pruef-agentur.mjs index 6dee3e8d..8cba5a8e 100644 --- a/server/pruef-agentur.mjs +++ b/server/pruef-agentur.mjs @@ -36,9 +36,8 @@ import { scryptSync, randomBytes } from "node:crypto"; import { heuteLokal } from "./helfer-zeit.mjs"; const HIER = dirname(fileURLToPath(import.meta.url)); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -const PORT = 4341; -await portMussFreiSein(PORT, "die Agentur-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Agentur-Pruefung"); const BASIS = `http://127.0.0.1:${PORT}`; const ordner = mkdtempSync(join(tmpdir(), "ws-agentur-")); diff --git a/server/pruef-alle-sehen-es.mjs b/server/pruef-alle-sehen-es.mjs index a9156378..8f11a837 100644 --- a/server/pruef-alle-sehen-es.mjs +++ b/server/pruef-alle-sehen-es.mjs @@ -39,9 +39,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4495, "pruef-alle-sehen-es"); +const PORT = await eigenerPort(import.meta, "pruef-alle-sehen-es"); const ordner = mkdtempSync(join(tmpdir(), "ws-sicht-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-alle-wege.mjs b/server/pruef-alle-wege.mjs index 63411e66..94cdb257 100644 --- a/server/pruef-alle-wege.mjs +++ b/server/pruef-alle-wege.mjs @@ -44,10 +44,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-wege-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); /* Der Port muss frei sein -- sonst wird gegen einen fremden Server gemessen. Begruendung in helfer-port.mjs. */ -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4247, "die Wegepruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Wegepruefung"); -process.env.PORT = "4247"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -56,7 +56,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4247"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-alter.mjs b/server/pruef-alter.mjs index 113939e8..db4c7f20 100644 --- a/server/pruef-alter.mjs +++ b/server/pruef-alter.mjs @@ -29,9 +29,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4413, "pruef-alter"); +const PORT = await eigenerPort(import.meta, "pruef-alter"); const ordner = mkdtempSync(join(tmpdir(), "ws-alter-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-ampel.mjs b/server/pruef-ampel.mjs index ab4bcdfa..97485b26 100644 --- a/server/pruef-ampel.mjs +++ b/server/pruef-ampel.mjs @@ -16,8 +16,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4206, "pruef-ampel"); -process.env.PORT = "4206"; +const PORT = await eigenerPort(import.meta, "pruef-ampel"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -26,7 +26,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -35,7 +35,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-ampel"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4206"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 250_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-anhaenge.mjs b/server/pruef-anhaenge.mjs index 4f60cd50..d6b7d35e 100644 --- a/server/pruef-anhaenge.mjs +++ b/server/pruef-anhaenge.mjs @@ -31,9 +31,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4416, "pruef-anhaenge"); +const PORT = await eigenerPort(import.meta, "pruef-anhaenge"); const ordner = mkdtempSync(join(tmpdir(), "ws-anh-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-anruf-ruhezeit.mjs b/server/pruef-anruf-ruhezeit.mjs index 4af869d1..7352200d 100644 --- a/server/pruef-anruf-ruhezeit.mjs +++ b/server/pruef-anruf-ruhezeit.mjs @@ -25,9 +25,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4199, "pruef-anruf-ruhezeit"); +const PORT = await eigenerPort(import.meta, "pruef-anruf-ruhezeit"); const ordner = mkdtempSync(join(tmpdir(), "ws-ruhe-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-anruf.mjs b/server/pruef-anruf.mjs index 95e16b4f..012fca4c 100644 --- a/server/pruef-anruf.mjs +++ b/server/pruef-anruf.mjs @@ -20,9 +20,9 @@ import { mkdtempSync, rmSync, writeFileSync, unlinkSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4196, "pruef-anruf"); +const PORT = await eigenerPort(import.meta, "pruef-anruf"); const ordner = mkdtempSync(join(tmpdir(), "ws-anruf-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-arten.mjs b/server/pruef-arten.mjs index f98b3c35..9cd5b7b6 100644 --- a/server/pruef-arten.mjs +++ b/server/pruef-arten.mjs @@ -68,9 +68,8 @@ import { notbremse } from "./helfer-notbremse.mjs"; notbremse(300_000, "die Artenpruefung"); const HIER = dirname(fileURLToPath(import.meta.url)); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -const PORT = 4359; -await portMussFreiSein(PORT, "die Artenpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Artenpruefung"); const BASIS = `http://127.0.0.1:${PORT}`; const ordner = mkdtempSync(join(tmpdir(), "ws-arten-")); diff --git a/server/pruef-aufbewahrung.mjs b/server/pruef-aufbewahrung.mjs index f75542b9..a69bbd5a 100644 --- a/server/pruef-aufbewahrung.mjs +++ b/server/pruef-aufbewahrung.mjs @@ -26,9 +26,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4410, "pruef-aufbewahrung"); +const PORT = await eigenerPort(import.meta, "pruef-aufbewahrung"); const ordner = mkdtempSync(join(tmpdir(), "ws-aufb-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-aufgaben-vorlagen.mjs b/server/pruef-aufgaben-vorlagen.mjs index 30b8ebff..282fd9c2 100644 --- a/server/pruef-aufgaben-vorlagen.mjs +++ b/server/pruef-aufgaben-vorlagen.mjs @@ -25,8 +25,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4211, "pruef-aufgaben-vorlagen"); -process.env.PORT = "4211"; +const PORT = await eigenerPort(import.meta, "pruef-aufgaben-vorlagen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -35,11 +35,11 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(240_000, "pruef-aufgaben-vorlagen"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4211"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-aufgabenbrett.mjs b/server/pruef-aufgabenbrett.mjs index 8fd5333a..7a259b77 100644 --- a/server/pruef-aufgabenbrett.mjs +++ b/server/pruef-aufgabenbrett.mjs @@ -40,8 +40,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4216, "pruef-aufgabenbrett"); -process.env.PORT = "4216"; +const PORT = await eigenerPort(import.meta, "pruef-aufgabenbrett"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -50,7 +50,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -59,7 +59,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-aufgabenbrett"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4216"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-auskunft.mjs b/server/pruef-auskunft.mjs index 2d417e97..ce3a6379 100644 --- a/server/pruef-auskunft.mjs +++ b/server/pruef-auskunft.mjs @@ -31,9 +31,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4412, "pruef-auskunft"); +const PORT = await eigenerPort(import.meta, "pruef-auskunft"); const ordner = mkdtempSync(join(tmpdir(), "ws-ausk-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-barrierefrei-workspace.mjs b/server/pruef-barrierefrei-workspace.mjs index 76a25d0d..5c5601b5 100644 --- a/server/pruef-barrierefrei-workspace.mjs +++ b/server/pruef-barrierefrei-workspace.mjs @@ -35,10 +35,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); /* Der Port muss frei sein -- sonst wird gegen einen fremden Server gemessen. Begruendung in helfer-port.mjs. */ import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4253, "die Barrierefreiheitspruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Barrierefreiheitspruefung"); -process.env.PORT = "4253"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -53,7 +53,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-barrierefrei-workspace"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4253"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-befinden.mjs b/server/pruef-befinden.mjs index da0cdd7e..e60af365 100644 --- a/server/pruef-befinden.mjs +++ b/server/pruef-befinden.mjs @@ -30,9 +30,9 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4419, "pruef-befinden"); +const PORT = await eigenerPort(import.meta, "pruef-befinden"); const ordner = mkdtempSync(join(tmpdir(), "ws-bef-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-bereiche-lesend.mjs b/server/pruef-bereiche-lesend.mjs index 9456965c..524b1a2c 100644 --- a/server/pruef-bereiche-lesend.mjs +++ b/server/pruef-bereiche-lesend.mjs @@ -13,7 +13,7 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; const ordner = mkdtempSync(join(tmpdir(), "ws-bereiche-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); @@ -22,8 +22,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4183, "pruef-bereiche-lesend"); -process.env.PORT = "4183"; +const PORT = await eigenerPort(import.meta, "pruef-bereiche-lesend"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -34,7 +34,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4183"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 180_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-betreuung.mjs b/server/pruef-betreuung.mjs index 6ba4b7f1..4eaf788d 100644 --- a/server/pruef-betreuung.mjs +++ b/server/pruef-betreuung.mjs @@ -12,7 +12,7 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; const ordner = mkdtempSync(join(tmpdir(), "ws-betreuung-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); @@ -21,8 +21,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4189, "pruef-betreuung"); -process.env.PORT = "4189"; +const PORT = await eigenerPort(import.meta, "pruef-betreuung"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -33,7 +33,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4189"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); let fehler = 0; diff --git a/server/pruef-bewerbung.mjs b/server/pruef-bewerbung.mjs index bfdcba10..35b7604d 100644 --- a/server/pruef-bewerbung.mjs +++ b/server/pruef-bewerbung.mjs @@ -38,9 +38,9 @@ import { mkdtempSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4504, "pruef-bewerbung"); +const PORT = await eigenerPort(import.meta, "pruef-bewerbung"); const ordner = mkdtempSync(join(tmpdir(), "ws-bewerb-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-breiten.mjs b/server/pruef-breiten.mjs index 74be448b..1420c3b4 100644 --- a/server/pruef-breiten.mjs +++ b/server/pruef-breiten.mjs @@ -38,10 +38,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); /* Der Port muss frei sein -- sonst wird gegen einen fremden Server gemessen. Begruendung in helfer-port.mjs. */ import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4277, "die Breitenpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Breitenpruefung"); -process.env.PORT = "4277"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -56,7 +56,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-breiten"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4277"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-bremse.mjs b/server/pruef-bremse.mjs index 84a42d23..0e12b898 100644 --- a/server/pruef-bremse.mjs +++ b/server/pruef-bremse.mjs @@ -41,10 +41,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4485, "pruef-bremse"); +const PORT = await eigenerPort(import.meta, "pruef-bremse"); const ordner = mkdtempSync(join(tmpdir(), "ws-bremse-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-browser.mjs b/server/pruef-browser.mjs index 2deb0338..ae123dfc 100644 --- a/server/pruef-browser.mjs +++ b/server/pruef-browser.mjs @@ -40,10 +40,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); /* Der Port muss frei sein -- sonst wird gegen einen fremden Server gemessen. Begruendung in helfer-port.mjs. */ import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4289, "die Browserpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Browserpruefung"); -process.env.PORT = "4289"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -58,7 +58,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-browser"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4289"; +const BASIS = `http://127.0.0.1:${PORT}`; /* LAUFEND MITSCHREIBEN, nicht erst am Ende. diff --git a/server/pruef-buehne.mjs b/server/pruef-buehne.mjs index 261bcf02..d52a6cb1 100644 --- a/server/pruef-buehne.mjs +++ b/server/pruef-buehne.mjs @@ -105,8 +105,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4193, "pruef-buehne"); -process.env.PORT = "4193"; +const PORT = await eigenerPort(import.meta, "pruef-buehne"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -116,7 +116,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -125,7 +125,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(120_000 + SEITEN_ZEIT, "pruef-buehne"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4193"; +const BASIS = `http://127.0.0.1:${PORT}`; /* Die Frist waechst mit der Liste: 220 s reichten fuer sechs Seiten. Eine feste Zahl waere hier eine Zeitbombe -- die zwoelf neuen haetten sie gerissen, und der Abbruch saehe aus wie ein Befund. */ diff --git a/server/pruef-call-kategorien.mjs b/server/pruef-call-kategorien.mjs index cbcb4d89..b7fb5f8b 100644 --- a/server/pruef-call-kategorien.mjs +++ b/server/pruef-call-kategorien.mjs @@ -28,10 +28,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; import { sauberBeenden } from "./helfer-beenden.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4321, "die Kategorienpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Kategorienpruefung"); -process.env.PORT = "4321"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -46,7 +46,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-call-kategorien"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4321"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-call-kategorien-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-chat-anhaenge.mjs b/server/pruef-chat-anhaenge.mjs index 879574b7..50cf09d6 100644 --- a/server/pruef-chat-anhaenge.mjs +++ b/server/pruef-chat-anhaenge.mjs @@ -34,10 +34,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; import { bestaetige } from "./helfer-nachfrage.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4323, "die Chat-Anhangpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Chat-Anhangpruefung"); -process.env.PORT = "4323"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -47,7 +47,7 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( await import("./index.js"); notbremse(600_000, "pruef-chat-anhaenge"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4323"; +const BASIS = `http://127.0.0.1:${PORT}`; const ANHANG_ORDNER = join(ordner, "chat-anhaenge"); const PROTOKOLL = join(process.cwd(), "pruef-chat-anhaenge-lauf.txt"); diff --git a/server/pruef-chat-aufloesen.mjs b/server/pruef-chat-aufloesen.mjs index d809ac1d..eaa1a6e3 100644 --- a/server/pruef-chat-aufloesen.mjs +++ b/server/pruef-chat-aufloesen.mjs @@ -37,13 +37,13 @@ const HIER_BILD = dirname(fileURLToPath(import.meta.url)); const ordner = mkdtempSync(join(tmpdir(), "ws-aufloesen-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4391, "die Aufloesen-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Aufloesen-Pruefung"); -process.env.PORT = "4391"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; -const BASIS = "http://127.0.0.1:4391"; +const BASIS = `http://127.0.0.1:${PORT}`; await import("./index.js"); @@ -104,7 +104,7 @@ function anmelden(rolle, code, wand = "crew.dogfather-universe.com") { return new Promise((fertig) => { const rumpf = JSON.stringify({ rolle, code }); const a = httpAnfrage({ - host: "127.0.0.1", port: 4391, path: "/workspace/api/anmelden", method: "POST", + host: "127.0.0.1", port: PORT, path: "/workspace/api/anmelden", method: "POST", headers: { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(rumpf), diff --git a/server/pruef-chat-ausbau.mjs b/server/pruef-chat-ausbau.mjs index 188d8d9e..12f16491 100644 --- a/server/pruef-chat-ausbau.mjs +++ b/server/pruef-chat-ausbau.mjs @@ -32,10 +32,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; import { bestaetige } from "./helfer-nachfrage.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4319, "die Chat-Ausbaupruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Chat-Ausbaupruefung"); -process.env.PORT = "4319"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -45,7 +45,7 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( await import("./index.js"); notbremse(480_000, "pruef-chat-ausbau"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4319"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-chat-ausbau-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-chat-kanaele.mjs b/server/pruef-chat-kanaele.mjs index 910448c0..656106cf 100644 --- a/server/pruef-chat-kanaele.mjs +++ b/server/pruef-chat-kanaele.mjs @@ -46,10 +46,10 @@ import { join } from "node:path"; const ordner = mkdtempSync(join(tmpdir(), "ws-kanal-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4377, "die Kanalpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Kanalpruefung"); -process.env.PORT = "4377"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -90,7 +90,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4377"; +const BASIS = `http://127.0.0.1:${PORT}`; /* ---- Notbremse und eigener Zuhoerer ------------------------------------- @@ -185,7 +185,7 @@ function anmelden(rolle, code, wand = "crew.dogfather-universe.com") { return new Promise((fertig) => { const rumpf = JSON.stringify({ rolle, code }); const a = httpAnfrage({ - host: "127.0.0.1", port: 4377, path: "/workspace/api/anmelden", method: "POST", + host: "127.0.0.1", port: PORT, path: "/workspace/api/anmelden", method: "POST", headers: { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(rumpf), diff --git a/server/pruef-chat-optik.mjs b/server/pruef-chat-optik.mjs index e68efff9..9764e164 100644 --- a/server/pruef-chat-optik.mjs +++ b/server/pruef-chat-optik.mjs @@ -32,10 +32,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; import { bestaetige } from "./helfer-nachfrage.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4317, "die Chat-Optikpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Chat-Optikpruefung"); -process.env.PORT = "4317"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -50,7 +50,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-chat-optik"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4317"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-chat-optik-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-chat.mjs b/server/pruef-chat.mjs index 5c9da11d..f843af73 100644 --- a/server/pruef-chat.mjs +++ b/server/pruef-chat.mjs @@ -30,10 +30,10 @@ import { join } from "node:path"; const ordner = mkdtempSync(join(tmpdir(), "ws-chat-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4313, "die Chatpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Chatpruefung"); -process.env.PORT = "4313"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -42,7 +42,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4313"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-chatkachel.mjs b/server/pruef-chatkachel.mjs index 7709c06f..fe0a13f3 100644 --- a/server/pruef-chatkachel.mjs +++ b/server/pruef-chatkachel.mjs @@ -24,10 +24,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; -const PORT = await portMussFreiSein(4442, "pruef-chatkachel"); +const PORT = await eigenerPort(import.meta, "pruef-chatkachel"); const ordner = mkdtempSync(join(tmpdir(), "ws-kachel-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-checkliste.mjs b/server/pruef-checkliste.mjs index 19d811a4..33802ea1 100644 --- a/server/pruef-checkliste.mjs +++ b/server/pruef-checkliste.mjs @@ -24,8 +24,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4207, "pruef-checkliste"); -process.env.PORT = "4207"; +const PORT = await eigenerPort(import.meta, "pruef-checkliste"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -34,7 +34,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -43,7 +43,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-checkliste"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4207"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); let fehler = 0; diff --git a/server/pruef-code.mjs b/server/pruef-code.mjs index dff39836..0488b2a6 100644 --- a/server/pruef-code.mjs +++ b/server/pruef-code.mjs @@ -30,8 +30,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4195, "pruef-code"); -process.env.PORT = "4195"; +const PORT = await eigenerPort(import.meta, "pruef-code"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -41,7 +41,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { bestaetige } from "./helfer-nachfrage.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort @@ -51,7 +51,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-code"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4195"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 240_000).unref?.(); let fehler = 0; diff --git a/server/pruef-community-sicht.mjs b/server/pruef-community-sicht.mjs index fb4b49df..931c2a4d 100644 --- a/server/pruef-community-sicht.mjs +++ b/server/pruef-community-sicht.mjs @@ -36,9 +36,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4198, "pruef-community-sicht"); +const PORT = await eigenerPort(import.meta, "pruef-community-sicht"); const ordner = mkdtempSync(join(tmpdir(), "ws-cs-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-content-ansicht.mjs b/server/pruef-content-ansicht.mjs index 441b9f53..4d505854 100644 --- a/server/pruef-content-ansicht.mjs +++ b/server/pruef-content-ansicht.mjs @@ -11,8 +11,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4185, "pruef-content-ansicht"); -process.env.PORT = "4185"; +const PORT = await eigenerPort(import.meta, "pruef-content-ansicht"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -22,7 +22,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -31,7 +31,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-content-ansicht"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4185"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-content.mjs b/server/pruef-content.mjs index 6bb76ddf..21d420a6 100644 --- a/server/pruef-content.mjs +++ b/server/pruef-content.mjs @@ -5,7 +5,7 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; const ordner = mkdtempSync(join(tmpdir(), "ws-content-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); @@ -14,9 +14,9 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); 4194 fuer die Gegenprobe. Nur den ersten zu pruefen hiesse, die Gegenprobe ungeschuetzt zu lassen, und die ist der Teil, dem man glaubt. */ -await portMussFreiSein(4184, "pruef-content"); -await portMussFreiSein(4194, "pruef-content (Gegenprobe)"); -process.env.PORT = "4184"; +const PORT = await eigenerPort(import.meta, "pruef-content"); +const PORT2 = await eigenerPort(import.meta, "pruef-content (Gegenprobe)", 1); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -27,7 +27,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4184"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des @@ -81,7 +81,7 @@ d.close(); const { spawnSync } = await import("node:child_process"); const zweiter = spawnSync(process.execPath, ["-e", ` process.env.WORKSPACE_DB = ${JSON.stringify(process.env.WORKSPACE_DB)}; - process.env.PORT = "4194"; + process.env.PORT = "${PORT2}"; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "X"; process.env.SITE_ACCESS_CODE_VANVAN = "Y"; diff --git a/server/pruef-countdown.mjs b/server/pruef-countdown.mjs index 6f8d9613..b878481b 100644 --- a/server/pruef-countdown.mjs +++ b/server/pruef-countdown.mjs @@ -40,10 +40,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal, tagLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4481, "pruef-countdown"); +const PORT = await eigenerPort(import.meta, "pruef-countdown"); const ordner = mkdtempSync(join(tmpdir(), "ws-count-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-creator-anlegen.mjs b/server/pruef-creator-anlegen.mjs index bc41d588..236c9e3c 100644 --- a/server/pruef-creator-anlegen.mjs +++ b/server/pruef-creator-anlegen.mjs @@ -42,9 +42,8 @@ import { notbremse } from "./helfer-notbremse.mjs"; notbremse(240_000, "die Creator-Anlegen-Pruefung"); const HIER = dirname(fileURLToPath(import.meta.url)); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -const PORT = 4347; -await portMussFreiSein(PORT, "die Creator-Anlegen-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Creator-Anlegen-Pruefung"); const BASIS = `http://127.0.0.1:${PORT}`; const ordner = mkdtempSync(join(tmpdir(), "ws-canlegen-")); diff --git a/server/pruef-crew-adresse.mjs b/server/pruef-crew-adresse.mjs index cc89fde2..7ddd143c 100644 --- a/server/pruef-crew-adresse.mjs +++ b/server/pruef-crew-adresse.mjs @@ -34,8 +34,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4371, "pruef-crew-adresse"); -process.env.PORT = "4371"; +const PORT = await eigenerPort(import.meta, "pruef-crew-adresse"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -44,7 +44,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-crew-adresse"); await new Promise((r) => setTimeout(r, 700)); @@ -68,7 +68,7 @@ function hole(pfad, { host, methode = "GET", rumpf = null, keks = "" } = {}) { const kopf = { Host: host }; if (rumpf) { kopf["Content-Type"] = "application/json"; kopf["Content-Length"] = Buffer.byteLength(rumpf); } if (keks) kopf.Cookie = keks; - const a = request({ host: "127.0.0.1", port: 4371, path: pfad, method: methode, headers: kopf }, + const a = request({ host: "127.0.0.1", port: PORT, path: pfad, method: methode, headers: kopf }, (antwort) => { let text = ""; antwort.setEncoding("utf8"); @@ -122,7 +122,7 @@ const idModi = anlegen("Marina", "modi", "CODE-MODI-0001"); const CREW = "crew.dogfather-universe.com"; const WS = "workspace.dogfather-universe.com"; const HAUPT = "dogfather-universe.com"; -const LOKAL = "127.0.0.1:4371"; +const LOKAL = `127.0.0.1:${PORT}`; /* ===================================================================== TEIL A -- DIE REGELN, OHNE SERVER diff --git a/server/pruef-crew-wand-bild.mjs b/server/pruef-crew-wand-bild.mjs index 5f580d46..724f343f 100644 --- a/server/pruef-crew-wand-bild.mjs +++ b/server/pruef-crew-wand-bild.mjs @@ -32,14 +32,14 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4373, "pruef-crew-wand-bild"); -process.env.PORT = "4373"; +const PORT = await eigenerPort(import.meta, "pruef-crew-wand-bild"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-crew-wand-bild"); await new Promise((r) => setTimeout(r, 700)); @@ -85,8 +85,8 @@ for (const geraet of [ seite.on("console", (m) => { if (m.type() === "error") meldungen.push(m.text()); }); const adresse = geraet.alt - ? "http://127.0.0.1:4373/workspace/index.html" - : "http://127.0.0.1:4373/workspace/crew-index.html"; + ? `http://127.0.0.1:${PORT}/workspace/index.html` + : `http://127.0.0.1:${PORT}/workspace/crew-index.html`; await seite.goto(adresse, { waitUntil: "networkidle" }); await seite.waitForTimeout(400); @@ -279,13 +279,13 @@ for (const wer of [ { name: "Manager", rolle: "manager", code: "CODE-MAN-0001", eigen: false }, ]) { const ctx = await browser.newContext({ viewport: { width: 1280, height: 860 } }); - const antwort = await ctx.request.post("http://127.0.0.1:4373/workspace/api/anmelden", { + const antwort = await ctx.request.post(`http://127.0.0.1:${PORT}/workspace/api/anmelden`, { data: { rolle: wer.rolle, code: wer.code }, }); ok(antwort.ok(), wer.name + ": die Anmeldung geht durch"); const seite = await ctx.newPage(); - await seite.goto("http://127.0.0.1:4373/workspace/aufgaben.html", { waitUntil: "networkidle" }); + await seite.goto(`http://127.0.0.1:${PORT}/workspace/aufgaben.html`, { waitUntil: "networkidle" }); await seite.waitForTimeout(500); const titel = await seite.title(); diff --git a/server/pruef-dabei-optik.mjs b/server/pruef-dabei-optik.mjs index 65bd6653..76c8f11e 100644 --- a/server/pruef-dabei-optik.mjs +++ b/server/pruef-dabei-optik.mjs @@ -34,10 +34,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-dabei-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4293, "die Optikpruefung der Teilnehmerwahl"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Optikpruefung der Teilnehmerwahl"); -process.env.PORT = "4293"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -52,7 +52,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-dabei-optik"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4293"; +const BASIS = `http://127.0.0.1:${PORT}`; /* LAUFEND MITSCHREIBEN. Node puffert stdout, sobald es umgeleitet wird -- bei einem Lauf mit sechs Browser-Anmeldungen steht bis zum Schluss diff --git a/server/pruef-entwicklung-kacheln.mjs b/server/pruef-entwicklung-kacheln.mjs index b7c0c25f..50d5e3cc 100644 --- a/server/pruef-entwicklung-kacheln.mjs +++ b/server/pruef-entwicklung-kacheln.mjs @@ -40,9 +40,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4475, "pruef-entwicklung-kacheln"); +const PORT = await eigenerPort(import.meta, "pruef-entwicklung-kacheln"); const ordner = mkdtempSync(join(tmpdir(), "ws-ekach-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-entwicklung.mjs b/server/pruef-entwicklung.mjs index 66c38db7..4684fcc5 100644 --- a/server/pruef-entwicklung.mjs +++ b/server/pruef-entwicklung.mjs @@ -32,10 +32,10 @@ import { request } from "node:http"; const ordner = mkdtempSync(join(tmpdir(), "ws-entw-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4389, "die Entwicklungspruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Entwicklungspruefung"); -process.env.PORT = "4389"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -62,7 +62,7 @@ function hole(pfad, { host = WS, methode = "GET", rumpf = null, keks = "" } = {} const kopf = { Host: host }; if (rumpf) { kopf["Content-Type"] = "application/json"; kopf["Content-Length"] = Buffer.byteLength(rumpf); } if (keks) kopf.Cookie = keks; - const a = request({ host: "127.0.0.1", port: 4389, path: pfad, method: methode, headers: kopf }, + const a = request({ host: "127.0.0.1", port: PORT, path: pfad, method: methode, headers: kopf }, (antwort) => { let text = ""; antwort.setEncoding("utf8"); diff --git a/server/pruef-erwaehnung.mjs b/server/pruef-erwaehnung.mjs index c4464a1f..84affaf8 100644 --- a/server/pruef-erwaehnung.mjs +++ b/server/pruef-erwaehnung.mjs @@ -38,12 +38,12 @@ import { tmpdir } from "node:os"; import { join, dirname } from "node:path"; import { fileURLToPath } from "node:url"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; import { erwaehnungenFinden, erwaehnteIds } from "./chat-erwaehnung.js"; const HIER = dirname(fileURLToPath(import.meta.url)); -const PORT = await portMussFreiSein(4426, "pruef-erwaehnung"); +const PORT = await eigenerPort(import.meta, "pruef-erwaehnung"); const ordner = mkdtempSync(join(tmpdir(), "ws-erwaehnung-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-eskalation.mjs b/server/pruef-eskalation.mjs index 4fd0171c..ab0a94a4 100644 --- a/server/pruef-eskalation.mjs +++ b/server/pruef-eskalation.mjs @@ -29,10 +29,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal, tagLokal, tagVon } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4417, "pruef-eskalation"); +const PORT = await eigenerPort(import.meta, "pruef-eskalation"); const ordner = mkdtempSync(join(tmpdir(), "ws-eskal-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-fassungen.mjs b/server/pruef-fassungen.mjs index a201c6d6..d82104c3 100644 --- a/server/pruef-fassungen.mjs +++ b/server/pruef-fassungen.mjs @@ -34,9 +34,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4415, "pruef-fassungen"); +const PORT = await eigenerPort(import.meta, "pruef-fassungen"); const ordner = mkdtempSync(join(tmpdir(), "ws-fass-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-formulare.mjs b/server/pruef-formulare.mjs index 3cf7f21b..b361f4b8 100644 --- a/server/pruef-formulare.mjs +++ b/server/pruef-formulare.mjs @@ -26,8 +26,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4203, "pruef-formulare"); -process.env.PORT = "4203"; +const PORT = await eigenerPort(import.meta, "pruef-formulare"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -36,7 +36,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -45,7 +45,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-formulare"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4203"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 250_000).unref?.(); let fehler = 0; diff --git a/server/pruef-freie-namen.mjs b/server/pruef-freie-namen.mjs index c0435eb5..95649a2a 100644 --- a/server/pruef-freie-namen.mjs +++ b/server/pruef-freie-namen.mjs @@ -31,8 +31,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4192, "pruef-freie-namen"); -process.env.PORT = "4192"; +const PORT = await eigenerPort(import.meta, "pruef-freie-namen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -42,7 +42,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -51,7 +51,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-freie-namen"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4192"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 240_000).unref?.(); let fehler = 0; diff --git a/server/pruef-galerie.mjs b/server/pruef-galerie.mjs index 68ff3d13..a26c5704 100644 --- a/server/pruef-galerie.mjs +++ b/server/pruef-galerie.mjs @@ -41,10 +41,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4487, "pruef-galerie"); +const PORT = await eigenerPort(import.meta, "pruef-galerie"); const ordner = mkdtempSync(join(tmpdir(), "ws-gal-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.WORKSPACE_DATEN = join(ordner, "daten"); diff --git a/server/pruef-gespraech.mjs b/server/pruef-gespraech.mjs index 6af73d83..89b48302 100644 --- a/server/pruef-gespraech.mjs +++ b/server/pruef-gespraech.mjs @@ -30,10 +30,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4493, "pruef-gespraech"); +const PORT = await eigenerPort(import.meta, "pruef-gespraech"); const ordner = mkdtempSync(join(tmpdir(), "ws-gespr-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-glocke.mjs b/server/pruef-glocke.mjs index 23648217..4faafb49 100644 --- a/server/pruef-glocke.mjs +++ b/server/pruef-glocke.mjs @@ -52,10 +52,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-glocke-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4299, "die Glockenpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Glockenpruefung"); -process.env.PORT = "4299"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -70,7 +70,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-glocke"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4299"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-glocke-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-grosscheck.mjs b/server/pruef-grosscheck.mjs index 75fe9373..709588f4 100644 --- a/server/pruef-grosscheck.mjs +++ b/server/pruef-grosscheck.mjs @@ -49,8 +49,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4218, "pruef-grosscheck"); -process.env.PORT = "4218"; +const PORT = await eigenerPort(import.meta, "pruef-grosscheck"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -60,7 +60,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -69,7 +69,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-grosscheck"); await new Promise((r) => setTimeout(r, 800)); -const BASIS = "http://127.0.0.1:4218"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH — zu lange gelaufen"); process.exit(1); }, 900_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-haerte.mjs b/server/pruef-haerte.mjs index 4febc31170666a7e5d951aae4da4b4966e945823..d38d56d0cf6d01c980ae9a2d05a1a9d84dfed3b4 100644 GIT binary patch delta 119 zcmZpl#yEW%h3*eWEJCuWu?ASuzv z%q;+_)XPmRNt`UeuF098QVmjDo3PoQeKMm|LPkkRft9|#p^>?s0T3Em!R23a$T setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4198"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 400_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-haus-seiten.mjs b/server/pruef-haus-seiten.mjs index 92977a2e..dcc3972e 100644 --- a/server/pruef-haus-seiten.mjs +++ b/server/pruef-haus-seiten.mjs @@ -30,9 +30,9 @@ import { mkdtempSync, rmSync, readdirSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4422, "pruef-haus-seiten"); +const PORT = await eigenerPort(import.meta, "pruef-haus-seiten"); const ordner = mkdtempSync(join(tmpdir(), "ws-haus-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-haus-trennung.mjs b/server/pruef-haus-trennung.mjs index b21e9988..e051565c 100644 --- a/server/pruef-haus-trennung.mjs +++ b/server/pruef-haus-trennung.mjs @@ -37,10 +37,10 @@ import { request } from "node:http"; const ordner = mkdtempSync(join(tmpdir(), "ws-haus-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4381, "die Haustrennung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Haustrennung"); -process.env.PORT = "4381"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -67,7 +67,7 @@ function hole(pfad, { host, methode = "GET", rumpf = null, keks = "" } = {}) { const kopf = { Host: host }; if (rumpf) { kopf["Content-Type"] = "application/json"; kopf["Content-Length"] = Buffer.byteLength(rumpf); } if (keks) kopf.Cookie = keks; - const a = request({ host: "127.0.0.1", port: 4381, path: pfad, method: methode, headers: kopf }, + const a = request({ host: "127.0.0.1", port: PORT, path: pfad, method: methode, headers: kopf }, (antwort) => { let text = ""; antwort.setEncoding("utf8"); @@ -652,7 +652,7 @@ console.log("=== Haengt es wirklich an der Adresse? ==="); Pruefungen im Haus laufen dort, und eine stille Einschraenkung haette sie alle blind gemacht, ohne dass irgendwo etwas rot wird. Genau diese Falle steht schon in crew-adresse.js beschrieben. */ - const lokal = await hole("/workspace/api/aufgaben", { host: "127.0.0.1:4381", keks: dogi.keks }); + const lokal = await hole("/workspace/api/aufgaben", { host: `127.0.0.1:${PORT}`, keks: dogi.keks }); const t = (lokal.daten?.aufgaben || []).map((z) => z.titel); ok(t.includes("Lunas Steckbrief nachtragen"), `auf 127.0.0.1 bleibt alles wie bisher (${t.length} Aufgaben)`); diff --git a/server/pruef-highlights.mjs b/server/pruef-highlights.mjs index 5a845fff..06cf5a5b 100644 --- a/server/pruef-highlights.mjs +++ b/server/pruef-highlights.mjs @@ -27,10 +27,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; -const PORT = await portMussFreiSein(4438, "pruef-highlights"); +const PORT = await eigenerPort(import.meta, "pruef-highlights"); const ordner = mkdtempSync(join(tmpdir(), "ws-highlight-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-hilfe.mjs b/server/pruef-hilfe.mjs index c8c042ae..a83a3332 100644 --- a/server/pruef-hilfe.mjs +++ b/server/pruef-hilfe.mjs @@ -32,9 +32,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4188, "pruef-hilfe"); +const PORT = await eigenerPort(import.meta, "pruef-hilfe"); const ordner = mkdtempSync(join(tmpdir(), "ws-hilfe-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-hochladen.mjs b/server/pruef-hochladen.mjs index c3e110a2..d1506d6f 100644 --- a/server/pruef-hochladen.mjs +++ b/server/pruef-hochladen.mjs @@ -68,8 +68,8 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-hochlade-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -const PORT = await portMussFreiSein(4327, "die Hochladepruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Hochladepruefung"); process.env.PORT = String(PORT); process.env.SITE_ACCESS_SECRET = "lokaler-test"; diff --git a/server/pruef-ics.mjs b/server/pruef-ics.mjs index 180b8a5c..7fb73a00 100644 --- a/server/pruef-ics.mjs +++ b/server/pruef-ics.mjs @@ -32,10 +32,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-ics-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4345, "die Kalender-Abo-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Kalender-Abo-Pruefung"); -process.env.PORT = "4345"; +process.env.PORT = String(PORT); process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -45,7 +45,7 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( await import("./index.js"); notbremse(240_000, "pruef-ics"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4345"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-ics-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } @@ -185,7 +185,7 @@ melde("=== Der Link entsteht erst auf Wunsch ==="); } const linkLuna = await linkHolen(keksLuna); -ok(/^http:\/\/127\.0\.0\.1:4345\/workspace\/kalender\/[A-Za-z0-9_-]{40,}\.ics$/.test(linkLuna || ""), +ok(new RegExp(`^http://127\\.0\\.0\\.1:${PORT}/workspace/kalender/[A-Za-z0-9_-]{40,}\\.ics$`).test(linkLuna || ""), `der Link sieht richtig aus (…${String(linkLuna).slice(-24)})`); /* ======================================================================= diff --git a/server/pruef-installieren.mjs b/server/pruef-installieren.mjs index 145d4378..c4eda236 100644 --- a/server/pruef-installieren.mjs +++ b/server/pruef-installieren.mjs @@ -33,10 +33,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; -const PORT = await portMussFreiSein(4435, "pruef-installieren"); +const PORT = await eigenerPort(import.meta, "pruef-installieren"); const ordner = mkdtempSync(join(tmpdir(), "ws-install-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-jeder-hat-eine-seite.mjs b/server/pruef-jeder-hat-eine-seite.mjs index d8210221..06fc3cdc 100644 --- a/server/pruef-jeder-hat-eine-seite.mjs +++ b/server/pruef-jeder-hat-eine-seite.mjs @@ -41,9 +41,9 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4191, "pruef-jeder-hat-eine-seite"); +const PORT = await eigenerPort(import.meta, "pruef-jeder-hat-eine-seite"); const ordner = mkdtempSync(join(tmpdir(), "ws-seite-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-kachel-universum.mjs b/server/pruef-kachel-universum.mjs index f1e1a631..d4068aea 100644 --- a/server/pruef-kachel-universum.mjs +++ b/server/pruef-kachel-universum.mjs @@ -45,7 +45,7 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join, dirname } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { pngLesen, pixel, kontrast } from "./helfer-png.mjs"; const HIER = dirname(fileURLToPath(import.meta.url)); @@ -216,7 +216,7 @@ melde("=== 2. Das Universum im Hintergrund ==="); melde(""); melde("=== 3. Der Text auf der fertigen Kachel ==="); -const PORT = await portMussFreiSein(4194, "pruef-kachel-universum"); +const PORT = await eigenerPort(import.meta, "pruef-kachel-universum"); const ordner = mkdtempSync(join(tmpdir(), "ws-kachel-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-kachelraster.mjs b/server/pruef-kachelraster.mjs index 9e3837b9..0d6dd290 100644 --- a/server/pruef-kachelraster.mjs +++ b/server/pruef-kachelraster.mjs @@ -42,9 +42,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4479, "pruef-kachelraster"); +const PORT = await eigenerPort(import.meta, "pruef-kachelraster"); const ordner = mkdtempSync(join(tmpdir(), "ws-raster-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-kalender.mjs b/server/pruef-kalender.mjs index 9faa6896..516d49ac 100644 --- a/server/pruef-kalender.mjs +++ b/server/pruef-kalender.mjs @@ -18,8 +18,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4188, "pruef-kalender"); -process.env.PORT = "4188"; +const PORT = await eigenerPort(import.meta, "pruef-kalender"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -29,7 +29,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -38,7 +38,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-kalender"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4188"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-kanaele.mjs b/server/pruef-kanaele.mjs index 1e6e36f1..94297139 100644 --- a/server/pruef-kanaele.mjs +++ b/server/pruef-kanaele.mjs @@ -36,9 +36,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4477, "pruef-kanaele"); +const PORT = await eigenerPort(import.meta, "pruef-kanaele"); const ordner = mkdtempSync(join(tmpdir(), "ws-kanal-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-kanalzeile.mjs b/server/pruef-kanalzeile.mjs index b5c0d01e..97a998ba 100644 --- a/server/pruef-kanalzeile.mjs +++ b/server/pruef-kanalzeile.mjs @@ -26,10 +26,10 @@ import { createServer } from "node:http"; const ordner = mkdtempSync(join(tmpdir(), "ws-kz-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4332, "das Bildwerkzeug"); -const TIKTOK = await portMussFreiSein(4502, "nachgebautes TikTok"); -process.env.PORT = "4332"; +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "das Bildwerkzeug"); +const TIKTOK = await eigenerPort(import.meta, "nachgebautes TikTok", 1); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; process.env.TIKTOK_OEMBED_BASIS = `http://127.0.0.1:${TIKTOK}/oembed`; @@ -67,7 +67,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 1200)); -const BASIS = "http://127.0.0.1:4332"; +const BASIS = `http://127.0.0.1:${PORT}`; const { DatabaseSync } = await import("node:sqlite"); const { scryptSync, randomBytes } = await import("node:crypto"); diff --git a/server/pruef-kopf-messen.mjs b/server/pruef-kopf-messen.mjs index f37a0dc2..f37551e7 100644 --- a/server/pruef-kopf-messen.mjs +++ b/server/pruef-kopf-messen.mjs @@ -31,8 +31,8 @@ process.env.WORKSPACE_DB = join(ordner, "pruef.sqlite"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4179, "pruef-kopf-messen"); -process.env.PORT = "4179"; +const PORT = await eigenerPort(import.meta, "pruef-kopf-messen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -42,7 +42,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -51,7 +51,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-kopf-messen"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4179"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; let geprueft = 0; diff --git a/server/pruef-kreislauf.mjs b/server/pruef-kreislauf.mjs index 4e684e33..bb29e8a6 100644 --- a/server/pruef-kreislauf.mjs +++ b/server/pruef-kreislauf.mjs @@ -39,10 +39,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4491, "pruef-kreislauf"); +const PORT = await eigenerPort(import.meta, "pruef-kreislauf"); const ordner = mkdtempSync(join(tmpdir(), "ws-kreis-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-ladefehler.mjs b/server/pruef-ladefehler.mjs index 7853b102..b8a3222f 100644 --- a/server/pruef-ladefehler.mjs +++ b/server/pruef-ladefehler.mjs @@ -56,8 +56,8 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-ladefehler-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -const PORT = await portMussFreiSein(4339, "die Ladefehlerpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Ladefehlerpruefung"); process.env.PORT = String(PORT); process.env.SITE_ACCESS_SECRET = "lokaler-test"; diff --git a/server/pruef-leistung-optik.mjs b/server/pruef-leistung-optik.mjs index a1130402..cb64f35d 100644 --- a/server/pruef-leistung-optik.mjs +++ b/server/pruef-leistung-optik.mjs @@ -36,10 +36,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-leistoptik-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4337, "die Zahlen-Optikpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Zahlen-Optikpruefung"); -process.env.PORT = "4337"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -54,7 +54,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-leistung-optik"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4337"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-leistung-optik-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-leistung.mjs b/server/pruef-leistung.mjs index 2292b3e0..e79ca4c4 100644 --- a/server/pruef-leistung.mjs +++ b/server/pruef-leistung.mjs @@ -30,10 +30,10 @@ import { join } from "node:path"; const ordner = mkdtempSync(join(tmpdir(), "ws-leistung-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4333, "die Leistungspruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Leistungspruefung"); -process.env.PORT = "4333"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -42,7 +42,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4333"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-lesbarkeit.mjs b/server/pruef-lesbarkeit.mjs index 29e8cf33..bf974421 100644 --- a/server/pruef-lesbarkeit.mjs +++ b/server/pruef-lesbarkeit.mjs @@ -33,8 +33,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4214, "pruef-lesbarkeit"); -process.env.PORT = "4214"; +const PORT = await eigenerPort(import.meta, "pruef-lesbarkeit"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -43,7 +43,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -52,7 +52,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-lesbarkeit"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4214"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-manager-sicht.mjs b/server/pruef-manager-sicht.mjs index a4a559f8..96ce5c49 100644 --- a/server/pruef-manager-sicht.mjs +++ b/server/pruef-manager-sicht.mjs @@ -43,8 +43,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4199, "pruef-manager-sicht"); -process.env.PORT = "4199"; +const PORT = await eigenerPort(import.meta, "pruef-manager-sicht"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -54,7 +54,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -63,7 +63,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-manager-sicht"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4199"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); let fehler = 0; diff --git a/server/pruef-modi-checkliste.mjs b/server/pruef-modi-checkliste.mjs index e787fbce..96190544 100644 --- a/server/pruef-modi-checkliste.mjs +++ b/server/pruef-modi-checkliste.mjs @@ -31,8 +31,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4369, "pruef-modi-checkliste"); -process.env.PORT = "4369"; +const PORT = await eigenerPort(import.meta, "pruef-modi-checkliste"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -41,11 +41,11 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-modi-checkliste"); await new Promise((r) => setTimeout(r, 800)); -const BASIS = "http://127.0.0.1:4369"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; let geprueft = 0; diff --git a/server/pruef-modi-ideen.mjs b/server/pruef-modi-ideen.mjs index bc4a3214..0dbb5ac1 100644 --- a/server/pruef-modi-ideen.mjs +++ b/server/pruef-modi-ideen.mjs @@ -36,8 +36,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4365, "pruef-modi-ideen"); -process.env.PORT = "4365"; +const PORT = await eigenerPort(import.meta, "pruef-modi-ideen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -102,11 +102,11 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-modi-ideen"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4365"; +const BASIS = `http://127.0.0.1:${PORT}`; console.log("\n=== 2. Die Umstellung ===\n"); { diff --git a/server/pruef-modi-katalog.mjs b/server/pruef-modi-katalog.mjs index 03b70cb3..9af1bb0b 100644 --- a/server/pruef-modi-katalog.mjs +++ b/server/pruef-modi-katalog.mjs @@ -27,8 +27,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4363, "pruef-modi-katalog"); -process.env.PORT = "4363"; +const PORT = await eigenerPort(import.meta, "pruef-modi-katalog"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -39,11 +39,11 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( import { notbremse } from "./helfer-notbremse.mjs"; import { ersatzschreibungen } from "./helfer-deutsch.mjs"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-modi-katalog"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4363"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; let geprueft = 0; diff --git a/server/pruef-modi-kategorien.mjs b/server/pruef-modi-kategorien.mjs index df0a08b5..f2f029bd 100644 --- a/server/pruef-modi-kategorien.mjs +++ b/server/pruef-modi-kategorien.mjs @@ -28,8 +28,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4361, "pruef-modi-kategorien"); -process.env.PORT = "4361"; +const PORT = await eigenerPort(import.meta, "pruef-modi-kategorien"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -38,11 +38,11 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-modi-kategorien"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4361"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; let geprueft = 0; diff --git a/server/pruef-modi-livecheck.mjs b/server/pruef-modi-livecheck.mjs index 518034dc..7a5b9dea 100644 --- a/server/pruef-modi-livecheck.mjs +++ b/server/pruef-modi-livecheck.mjs @@ -32,8 +32,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4367, "pruef-modi-livecheck"); -process.env.PORT = "4367"; +const PORT = await eigenerPort(import.meta, "pruef-modi-livecheck"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -42,11 +42,11 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-modi-livecheck"); await new Promise((r) => setTimeout(r, 800)); -const BASIS = "http://127.0.0.1:4367"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; let geprueft = 0; diff --git a/server/pruef-modi-verborgen.mjs b/server/pruef-modi-verborgen.mjs index 8a08084e..a8ca27ca 100644 --- a/server/pruef-modi-verborgen.mjs +++ b/server/pruef-modi-verborgen.mjs @@ -28,8 +28,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4359, "pruef-modi-verborgen"); -process.env.PORT = "4359"; +const PORT = await eigenerPort(import.meta, "pruef-modi-verborgen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -38,14 +38,14 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* NACH index.js: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren. Fuer den Betrieb richtig, fuer eine Pruefung fatal -- ohne diese Zeile bliebe der Prozess ewig stehen. */ notbremse(180_000, "pruef-modi-verborgen"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4359"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; let geprueft = 0; diff --git a/server/pruef-nachfrage.mjs b/server/pruef-nachfrage.mjs index f6d60e2a..3eaa9d1e 100644 --- a/server/pruef-nachfrage.mjs +++ b/server/pruef-nachfrage.mjs @@ -326,12 +326,12 @@ if (process.env.OHNE_BROWSER === "ja") { } else { const { mkdtempSync, rmSync } = await import("node:fs"); const { tmpdir } = await import("node:os"); - const { portMussFreiSein } = await import("./helfer-port.mjs"); + const { eigenerPort } = await import("./helfer-port.mjs"); const { notbremse } = await import("./helfer-notbremse.mjs"); const ordner = mkdtempSync(join(tmpdir(), "ws-nachfrage-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); - const PORT = await portMussFreiSein(4329, "die Nachfragepruefung"); + const PORT = await eigenerPort(import.meta, "die Nachfragepruefung"); process.env.PORT = String(PORT); process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; diff --git a/server/pruef-nachruesten.mjs b/server/pruef-nachruesten.mjs index bb74da1d..c13b327a 100644 --- a/server/pruef-nachruesten.mjs +++ b/server/pruef-nachruesten.mjs @@ -35,9 +35,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4191, "pruef-nachruesten"); +const PORT = await eigenerPort(import.meta, "pruef-nachruesten"); const ordner = mkdtempSync(join(tmpdir(), "ws-nachruesten-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-nachwuchs.mjs b/server/pruef-nachwuchs.mjs index 9e164354..99a3f192 100644 --- a/server/pruef-nachwuchs.mjs +++ b/server/pruef-nachwuchs.mjs @@ -24,10 +24,10 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { tagLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4404, "pruef-nachwuchs"); +const PORT = await eigenerPort(import.meta, "pruef-nachwuchs"); const ordner = mkdtempSync(join(tmpdir(), "ws-nachwuchs-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-neue-seiten.mjs b/server/pruef-neue-seiten.mjs index 57cb1c81..d8ecfbc7 100644 --- a/server/pruef-neue-seiten.mjs +++ b/server/pruef-neue-seiten.mjs @@ -35,9 +35,9 @@ import { mkdtempSync, rmSync, mkdirSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4403, "pruef-neue-seiten"); +const PORT = await eigenerPort(import.meta, "pruef-neue-seiten"); const ordner = mkdtempSync(join(tmpdir(), "ws-treffs-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-personen-formular.mjs b/server/pruef-personen-formular.mjs index a542bff8..e3153ad5 100644 --- a/server/pruef-personen-formular.mjs +++ b/server/pruef-personen-formular.mjs @@ -29,8 +29,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4198, "pruef-personen-formular"); -process.env.PORT = "4198"; +const PORT = await eigenerPort(import.meta, "pruef-personen-formular"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -40,7 +40,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -49,7 +49,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-personen-formular"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4198"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); let fehler = 0; diff --git a/server/pruef-personen-kachel.mjs b/server/pruef-personen-kachel.mjs index 6fa33483..fac58aac 100644 --- a/server/pruef-personen-kachel.mjs +++ b/server/pruef-personen-kachel.mjs @@ -31,10 +31,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-perskachel-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4329, "die Personenkachel-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Personenkachel-Pruefung"); -process.env.PORT = "4329"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -44,7 +44,7 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( await import("./index.js"); notbremse(420_000, "pruef-personen-kachel"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4329"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-personen-kachel-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-personen-liste.mjs b/server/pruef-personen-liste.mjs index 0899a68c..91cc7381 100644 --- a/server/pruef-personen-liste.mjs +++ b/server/pruef-personen-liste.mjs @@ -23,8 +23,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4187, "pruef-personen-liste"); -process.env.PORT = "4187"; +const PORT = await eigenerPort(import.meta, "pruef-personen-liste"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -34,7 +34,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -43,7 +43,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-personen-liste"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4187"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); let fehler = 0; diff --git a/server/pruef-personen-loeschen.mjs b/server/pruef-personen-loeschen.mjs index 3c14d289..c26751b6 100644 --- a/server/pruef-personen-loeschen.mjs +++ b/server/pruef-personen-loeschen.mjs @@ -8,7 +8,7 @@ import { mkdtempSync, rmSync, readdirSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; const ordner = mkdtempSync(join(tmpdir(), "ws-loeschen-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); @@ -17,8 +17,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4188, "pruef-personen-loeschen"); -process.env.PORT = "4188"; +const PORT = await eigenerPort(import.meta, "pruef-personen-loeschen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -29,7 +29,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4188"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-portnummern.mjs b/server/pruef-portnummern.mjs new file mode 100644 index 00000000..d45cb997 --- /dev/null +++ b/server/pruef-portnummern.mjs @@ -0,0 +1,97 @@ +/* ===================================================================== + pruef-portnummern.mjs — Zwei Pruefungen, eine Nummer + + WAS HIER SCHIEFGING (20.09.2026 gemessen): + 164 Pruefdateien, 129 verschiedene Nummern -- NEUNZEHN waren doppelt + vergeben, 4186 und 4188 und 4196 und 4198 sogar dreifach. Niemand + hatte das gewollt; jede neue Pruefung wurde von einer vorhandenen + abgeschrieben, und die Nummer kam mit. + + WAS DAS ANRICHTET: Der Waechter bricht ab, statt gegen einen fremden + Server zu messen -- so weit, so richtig. Aber zwei Pruefungen mit + derselben Nummer koennen nie gleichzeitig laufen, und ein + liegengebliebener Prozess der einen laesst die andere mit einer + Meldung abbrechen, die wie ein Befund aussieht. Genau das ist am + 20.09. zweimal passiert, beide Male mit Fehlersuche an der falschen + Stelle. + + WAS DIESE PRUEFUNG SICHERT: Dass die Nummer ABGELEITET bleibt. Eine + von Hand eingetragene Zahl ist der Anfang der naechsten Doppelung -- + sie faellt nur niemandem auf, bis zwei Laeufe kollidieren. + ===================================================================== */ + +import { readdirSync, readFileSync } from "node:fs"; +import { eigenerPort } from "./helfer-port.mjs"; + +let ok_ = 0, fehl = 0; +const ok = (b, text) => { if (b) { ok_++; console.log(" ok " + text); } + else { fehl++; console.log(" FEHL " + text); } }; + +const ORDNER = new URL(".", import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, "$1"); +const dateien = readdirSync(ORDNER) + .filter((f) => f.startsWith("pruef-") && f.endsWith(".mjs")).sort(); + +console.log("\n=== 1. Niemand traegt eine Nummer von Hand ein ==="); +const vonHand = []; +const ohneWaechter = []; +for (const f of dateien) { + const s = readFileSync(ORDNER + "/" + f, "utf8"); + /* Kommentare zaehlen nicht: In helfer-port.mjs und hier stehen alte + Nummern als Beleg, und ein Beleg ist kein Eintrag. */ + const code = s.replace(/\/\*[\s\S]*?\*\//g, "").replace(/^\s*\/\/.*$/gm, ""); + if (/portMussFreiSein\(\s*\d/.test(code)) vonHand.push(f); + const startetServer = /listen\(|process\.env\.PORT\s*=/.test(code); + if (startetServer && !/eigenerPort\(\s*import\.meta/.test(code)) ohneWaechter.push(f); +} +ok(dateien.length > 100, `${dateien.length} Pruefdateien angesehen`); +ok(vonHand.length === 0, + `keine traegt eine feste Nummer im Waechter (${vonHand.slice(0, 4).join(", ") || "—"})`); +ok(ohneWaechter.length === 0, + `jede, die einen Server startet, leitet ihre Nummer ab (${ohneWaechter.slice(0, 4).join(", ") || "—"})`); + +console.log("\n=== 2. Die abgeleiteten Nummern sind eindeutig ==="); +const belegt = new Map(); +let doppelt = 0; +dateien.forEach((f, i) => { + for (let n = 0; n < 2; n++) { + const p = 5000 + i * 2 + n; + if (belegt.has(p)) { doppelt++; console.log(` ${p}: ${belegt.get(p)} und ${f}`); } + belegt.set(p, f); + } +}); +ok(belegt.size === dateien.length * 2 && doppelt === 0, + `${belegt.size} Nummern fuer ${dateien.length} Dateien, ${doppelt} doppelt`); + +console.log("\n=== 3. Die Ableitung stimmt wirklich (gemessen, nicht gerechnet) ==="); +/* NICHT die Formel gegen sich selbst pruefen -- das waere eine + Bestaetigung ohne Aussage. Gefragt wird die Funktion, die die + Pruefungen auch benutzen, und verglichen wird mit der Stelle im + Alphabet. */ +const ersteDatei = dateien[0]; +const meine = dateien.indexOf("pruef-portnummern.mjs"); +const p0 = await eigenerPort(import.meta, "pruef-portnummern (Selbsttest)", 0); +ok(p0 === 5000 + meine * 2, + `meine eigene Nummer ist ${p0} — Stelle ${meine} im Alphabet, erste Datei ${ersteDatei}`); +const p1 = await eigenerPort(import.meta, "pruef-portnummern (Selbsttest)", 1); +ok(p1 === p0 + 1, `und die zweite ist ${p1}, also genau eine daneben`); + +console.log("\n=== 4. Gegenprobe: kann sie auch NICHT IN ORDNUNG sagen? ==="); +/* Eine Pruefung, die immer bestaetigt, bestaetigt nichts. */ +let drittesAusgangGriff = false; +try { + /* Eine Datei, die es nicht gibt -- die Ableitung darf dann NICHT + raten, sondern muss abbrechen. */ + await eigenerPort({ url: new URL("./gibt-es-nicht.mjs", import.meta.url).href }, "Gegenprobe"); +} catch (f) { + drittesAusgangGriff = /steht nicht in der Liste/.test(f?.message || ""); +} +ok(drittesAusgangGriff, "eine unbekannte Datei bekommt keine geratene Nummer, sondern einen Abbruch"); + +let zuHoheNummer = false; +try { await eigenerPort(import.meta, "Gegenprobe", 7); } +catch (f) { zuHoheNummer = /Nummern je Datei/.test(f?.message || ""); } +ok(zuHoheNummer, "und eine dritte Nummer je Datei gibt es nicht"); + +console.log(`\n${ok_} Pruefungen, ${fehl} Fehler`); +console.log(fehl ? "NICHT IN ORDNUNG\n" : "ALLES IN ORDNUNG\n"); +process.exit(fehl ? 1 : 0); diff --git a/server/pruef-protokoll-klappe.mjs b/server/pruef-protokoll-klappe.mjs index 4d663341..aaab6ad5 100644 --- a/server/pruef-protokoll-klappe.mjs +++ b/server/pruef-protokoll-klappe.mjs @@ -15,8 +15,8 @@ process.env.WORKSPACE_DB = join(ordner, "pruef.sqlite"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4180, "pruef-protokoll-klappe"); -process.env.PORT = "4180"; +const PORT = await eigenerPort(import.meta, "pruef-protokoll-klappe"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -26,7 +26,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -35,7 +35,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-protokoll-klappe"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4180"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); let fehler = 0; diff --git a/server/pruef-protokoll-loeschen.mjs b/server/pruef-protokoll-loeschen.mjs index 9d0c49b2..bdb06444 100644 --- a/server/pruef-protokoll-loeschen.mjs +++ b/server/pruef-protokoll-loeschen.mjs @@ -36,8 +36,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4197, "pruef-protokoll-loeschen"); -process.env.PORT = "4197"; +const PORT = await eigenerPort(import.meta, "pruef-protokoll-loeschen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -47,7 +47,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -56,7 +56,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-protokoll-loeschen"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4197"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); let fehler = 0; diff --git a/server/pruef-push-weg.mjs b/server/pruef-push-weg.mjs index d5878934..39f87853 100644 --- a/server/pruef-push-weg.mjs +++ b/server/pruef-push-weg.mjs @@ -51,6 +51,18 @@ import { `unref()` allein genuegt nicht -- es nimmt dem Handle nur das Recht, den Prozess am Leben zu halten; im Schliessen ist es trotzdem. */ +/* ZWEI NACHGEBAUTE PUSH-DIENSTE, ZWEI NUMMERN (20.09.2026). + Vorher standen hier 4341 und 4342 fest -- und 4341 gehoerte + gleichzeitig pruef-agentur. Aufgefallen ist das NICHT beim + Nachzaehlen der Doppelungen: Diese Datei rief den Waechter gar + nicht auf und tauchte in der Liste deshalb nie auf. Gefunden hat + sie erst pruef-portnummern mit der anderen Frage -- "wer startet + einen Server, ohne seine Nummer abzuleiten?". Eine Liste zeigt + nur, was auf ihr steht. */ +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "pruef-push-weg", 0); +const PORT2 = await eigenerPort(import.meta, "pruef-push-weg (Fehlercodes)", 1); + const schliessen = (dienst) => new Promise((fertig) => { if (!dienst.listening) return fertig(); dienst.close(() => fertig()); @@ -141,10 +153,10 @@ let empfangen = null, kopfzeilen = null; a.writeHead(201); a.end(); }); }); - await new Promise((r) => dienst.listen(4341, "127.0.0.1", r)); + await new Promise((r) => dienst.listen(PORT, "127.0.0.1", r)); const paar = schluesselErzeugen(); - const e = await schicken({ endpunkt: "http://127.0.0.1:4341/push/abc", ...anmeldung }, + const e = await schicken({ endpunkt: `http://127.0.0.1:${PORT}/push/abc`, ...anmeldung }, TEXT, paar, "mailto:test@dogfather-universe.com"); ok(e.ok, `zugestellt (Status ${e.status})`); @@ -181,8 +193,8 @@ console.log("\n=== Ein Geraet, das es nicht mehr gibt ==="); const paar = schluesselErzeugen(); for (const [code, erwartetWeg] of [[410, true], [404, true], [500, false], [429, false]]) { const d = createServer((q, a) => { a.writeHead(code); a.end(); }); - await new Promise((r) => d.listen(4342, "127.0.0.1", r)); - const e = await schicken({ endpunkt: "http://127.0.0.1:4342/x", ...anmeldung }, + await new Promise((r) => d.listen(PORT2, "127.0.0.1", r)); + const e = await schicken({ endpunkt: `http://127.0.0.1:${PORT2}/x`, ...anmeldung }, TEXT, paar, "mailto:t@dogfather-universe.com"); ok(e.weg === erwartetWeg, `${code} -> weg=${e.weg} (erwartet ${erwartetWeg})` diff --git a/server/pruef-push-ziel.mjs b/server/pruef-push-ziel.mjs index de3c9e54..c647bae2 100644 --- a/server/pruef-push-ziel.mjs +++ b/server/pruef-push-ziel.mjs @@ -37,10 +37,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { createServer } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4423, "pruef-push-ziel"); -const DIENST = await portMussFreiSein(4424, "pruef-push-ziel (Push-Dienst)"); +const PORT = await eigenerPort(import.meta, "pruef-push-ziel"); +const DIENST = await eigenerPort(import.meta, "pruef-push-ziel (Push-Dienst)", 1); const ordner = mkdtempSync(join(tmpdir(), "ws-pz-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-rechte-umstellen.mjs b/server/pruef-rechte-umstellen.mjs index 90579e3e..ccf66421 100644 --- a/server/pruef-rechte-umstellen.mjs +++ b/server/pruef-rechte-umstellen.mjs @@ -24,9 +24,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4405, "pruef-rechte-umstellen"); +const PORT = await eigenerPort(import.meta, "pruef-rechte-umstellen"); const ordner = mkdtempSync(join(tmpdir(), "ws-rechte-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-rechtetafel.mjs b/server/pruef-rechtetafel.mjs index 15ae8ecb..30079ed0 100644 --- a/server/pruef-rechtetafel.mjs +++ b/server/pruef-rechtetafel.mjs @@ -46,9 +46,9 @@ import { mkdtempSync, rmSync, readdirSync, existsSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4397, "pruef-rechtetafel"); +const PORT = await eigenerPort(import.meta, "pruef-rechtetafel"); const ordner = mkdtempSync(join(tmpdir(), "ws-rechte-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-rollen-anlegen.mjs b/server/pruef-rollen-anlegen.mjs index 5ccb8082..13d1dcbc 100644 --- a/server/pruef-rollen-anlegen.mjs +++ b/server/pruef-rollen-anlegen.mjs @@ -40,9 +40,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4497, "pruef-rollen-anlegen"); +const PORT = await eigenerPort(import.meta, "pruef-rollen-anlegen"); const ordner = mkdtempSync(join(tmpdir(), "ws-ra-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-rollen.mjs b/server/pruef-rollen.mjs index 548200d0..b2cfee04 100644 --- a/server/pruef-rollen.mjs +++ b/server/pruef-rollen.mjs @@ -38,8 +38,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4193, "pruef-rollen"); -process.env.PORT = "4193"; +const PORT = await eigenerPort(import.meta, "pruef-rollen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -49,7 +49,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -76,7 +76,7 @@ await import("./index.js"); irgendwann gar nichts mehr. */ notbremse(900_000, "pruef-rollen"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4193"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 540_000).unref?.(); let fehler = 0; diff --git a/server/pruef-rollstelle.mjs b/server/pruef-rollstelle.mjs index 0124eacd..db5c3c84 100644 --- a/server/pruef-rollstelle.mjs +++ b/server/pruef-rollstelle.mjs @@ -40,10 +40,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; -const PORT = await portMussFreiSein(4432, "pruef-rollstelle"); +const PORT = await eigenerPort(import.meta, "pruef-rollstelle"); const ordner = mkdtempSync(join(tmpdir(), "ws-rollstelle-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-rueckmeldung.mjs b/server/pruef-rueckmeldung.mjs index 0d19a721..28e92cfd 100644 --- a/server/pruef-rueckmeldung.mjs +++ b/server/pruef-rueckmeldung.mjs @@ -36,10 +36,10 @@ import { join } from "node:path"; const ordner = mkdtempSync(join(tmpdir(), "ws-rueck-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4379, "die Rueckmeldungspruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Rueckmeldungspruefung"); -process.env.PORT = "4379"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -48,7 +48,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 1000)); -const BASIS = "http://127.0.0.1:4379"; +const BASIS = `http://127.0.0.1:${PORT}`; /* Netz und Notbremse -- index.js faengt sonst jeden Absturz ab, und der Lauf sieht von aussen aus wie "laeuft noch". */ @@ -96,7 +96,7 @@ function anmelden(rolle, code, wand = "crew.dogfather-universe.com") { return new Promise((fertig) => { const rumpf = JSON.stringify({ rolle, code }); const a = httpAnfrage({ - host: "127.0.0.1", port: 4379, path: "/workspace/api/anmelden", method: "POST", + host: "127.0.0.1", port: PORT, path: "/workspace/api/anmelden", method: "POST", headers: { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(rumpf), Host: wand }, }, (antwort) => { diff --git a/server/pruef-sackgassen.mjs b/server/pruef-sackgassen.mjs index cc73c088..70f10191 100644 --- a/server/pruef-sackgassen.mjs +++ b/server/pruef-sackgassen.mjs @@ -53,8 +53,8 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-sackgasse-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -const PORT = await portMussFreiSein(4331, "die Sackgassenpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Sackgassenpruefung"); process.env.PORT = String(PORT); process.env.SITE_ACCESS_SECRET = "lokaler-test"; diff --git a/server/pruef-schranke.mjs b/server/pruef-schranke.mjs index 8b9bcf25..36e2b83b 100644 --- a/server/pruef-schranke.mjs +++ b/server/pruef-schranke.mjs @@ -34,10 +34,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-schranke-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); /* Der Port muss frei sein -- sonst wird gegen einen fremden Server gemessen. Begruendung in helfer-port.mjs. */ -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4231, "die Schrankenpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Schrankenpruefung"); -process.env.PORT = "4231"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -47,7 +47,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4231"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; @@ -353,7 +353,7 @@ console.log("\n=== Sicherheits-Kopfzeilen ==="); hier ein roher Aufruf -- sonst misst man dreimal denselben Fall. */ const http = await import("node:http"); const mitHost = (host) => new Promise((fertig) => { - const r = http.request({ host: "127.0.0.1", port: 4231, path: "/404.html", + const r = http.request({ host: "127.0.0.1", port: PORT, path: "/404.html", method: "GET", headers: { Host: host } }, (antwort) => { antwort.resume(); fertig(antwort.headers["strict-transport-security"] || null); @@ -362,9 +362,9 @@ console.log("\n=== Sicherheits-Kopfzeilen ==="); r.end(); }); - ok((await mitHost("127.0.0.1:4231")) === null, + ok((await mitHost(`127.0.0.1:${PORT}`)) === null, "ueber http an eine lokale Adresse kommt KEIN HSTS (RFC 6797)"); - ok((await mitHost("localhost:4231")) === null, + ok((await mitHost(`localhost:${PORT}`)) === null, "auch an localhost kommt kein HSTS"); const echt = await mitHost("dogfather-universe.com"); ok(!!echt && echt.includes("max-age="), diff --git a/server/pruef-schritt.mjs b/server/pruef-schritt.mjs index 96f984bf..96bfcc7b 100644 --- a/server/pruef-schritt.mjs +++ b/server/pruef-schritt.mjs @@ -31,9 +31,9 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4421, "pruef-schritt"); +const PORT = await eigenerPort(import.meta, "pruef-schritt"); const ordner = mkdtempSync(join(tmpdir(), "ws-schritt-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-schulung.mjs b/server/pruef-schulung.mjs index 706e14d9..42088c79 100644 --- a/server/pruef-schulung.mjs +++ b/server/pruef-schulung.mjs @@ -23,8 +23,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4205, "pruef-schulung"); -process.env.PORT = "4205"; +const PORT = await eigenerPort(import.meta, "pruef-schulung"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -33,7 +33,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -42,7 +42,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-schulung"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4205"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 250_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-scout-zuteilung.mjs b/server/pruef-scout-zuteilung.mjs index 1e8242a6..7bd1c48d 100644 --- a/server/pruef-scout-zuteilung.mjs +++ b/server/pruef-scout-zuteilung.mjs @@ -31,8 +31,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4217, "pruef-scout-zuteilung"); -process.env.PORT = "4217"; +const PORT = await eigenerPort(import.meta, "pruef-scout-zuteilung"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -41,7 +41,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -50,7 +50,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-scout-zuteilung"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4217"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-serien.mjs b/server/pruef-serien.mjs index 0f9606f3..023cf8a5 100644 --- a/server/pruef-serien.mjs +++ b/server/pruef-serien.mjs @@ -34,8 +34,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4189, "pruef-serien"); -process.env.PORT = "4189"; +const PORT = await eigenerPort(import.meta, "pruef-serien"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -45,7 +45,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -54,7 +54,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-serien"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4189"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); const tagText = (d = new Date()) => diff --git a/server/pruef-sicherung.mjs b/server/pruef-sicherung.mjs index 9f2b02fd..dbb7f7dc 100644 --- a/server/pruef-sicherung.mjs +++ b/server/pruef-sicherung.mjs @@ -15,7 +15,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { createRequire } from "node:module"; import { pathToFileURL } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; const ordner = mkdtempSync(join(tmpdir(), "ws-sicherung-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); @@ -24,8 +24,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4181, "pruef-sicherung"); -process.env.PORT = "4181"; +const PORT = await eigenerPort(import.meta, "pruef-sicherung"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -36,7 +36,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4181"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("\nABBRUCH: hing zu lange."); process.exit(1); }, 180_000).unref?.(); let fehler = 0; diff --git a/server/pruef-sicht.mjs b/server/pruef-sicht.mjs index 237738be..51798ac0 100644 --- a/server/pruef-sicht.mjs +++ b/server/pruef-sicht.mjs @@ -31,8 +31,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4215, "pruef-sicht"); -process.env.PORT = "4215"; +const PORT = await eigenerPort(import.meta, "pruef-sicht"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -41,7 +41,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -50,7 +50,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-sicht"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4215"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-spicy.mjs b/server/pruef-spicy.mjs index b2854306..42d4b313 100644 --- a/server/pruef-spicy.mjs +++ b/server/pruef-spicy.mjs @@ -38,9 +38,8 @@ import { notbremse } from "./helfer-notbremse.mjs"; notbremse(300_000, "die Spicy-Pruefung"); const HIER = dirname(fileURLToPath(import.meta.url)); -const { portMussFreiSein } = await import("./helfer-port.mjs"); -const PORT = 4351; -await portMussFreiSein(PORT, "die Spicy-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Spicy-Pruefung"); const BASIS = `http://127.0.0.1:${PORT}`; const ordner = mkdtempSync(join(tmpdir(), "ws-spicy-")); diff --git a/server/pruef-sprung.mjs b/server/pruef-sprung.mjs index 5c6ef3a8..aa686712 100644 --- a/server/pruef-sprung.mjs +++ b/server/pruef-sprung.mjs @@ -37,8 +37,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4212, "pruef-sprung"); -process.env.PORT = "4212"; +const PORT = await eigenerPort(import.meta, "pruef-sprung"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -47,7 +47,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -56,7 +56,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-sprung"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4212"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 300_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-start-ansicht.mjs b/server/pruef-start-ansicht.mjs index ade37920..7f9fe27a 100644 --- a/server/pruef-start-ansicht.mjs +++ b/server/pruef-start-ansicht.mjs @@ -11,8 +11,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4186, "pruef-start-ansicht"); -process.env.PORT = "4186"; +const PORT = await eigenerPort(import.meta, "pruef-start-ansicht"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -22,7 +22,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -31,7 +31,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-start-ansicht"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4186"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-steckbrief.mjs b/server/pruef-steckbrief.mjs index 4c91fb11..8cc295b3 100644 --- a/server/pruef-steckbrief.mjs +++ b/server/pruef-steckbrief.mjs @@ -16,8 +16,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4196, "pruef-steckbrief"); -process.env.PORT = "4196"; +const PORT = await eigenerPort(import.meta, "pruef-steckbrief"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -26,7 +26,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -35,7 +35,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-steckbrief"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4196"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); let fehler = 0; diff --git a/server/pruef-tagesblick.mjs b/server/pruef-tagesblick.mjs index 8f2699fc..e167148a 100644 --- a/server/pruef-tagesblick.mjs +++ b/server/pruef-tagesblick.mjs @@ -29,10 +29,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-tagesblick-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4303, "die Tagesblickpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Tagesblickpruefung"); -process.env.PORT = "4303"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -47,7 +47,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-tagesblick"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4303"; +const BASIS = `http://127.0.0.1:${PORT}`; const PROTOKOLL = join(process.cwd(), "pruef-tagesblick-lauf.txt"); try { rmSync(PROTOKOLL, { force: true }); } catch { /* gab es noch nicht */ } diff --git a/server/pruef-tagesruf.mjs b/server/pruef-tagesruf.mjs index fb79bc99..71907371 100644 --- a/server/pruef-tagesruf.mjs +++ b/server/pruef-tagesruf.mjs @@ -44,8 +44,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4186, "pruef-tagesruf"); -process.env.PORT = "4186"; +const PORT = await eigenerPort(import.meta, "pruef-tagesruf"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -55,7 +55,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -64,7 +64,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-start-ansicht"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4186"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-team-ampel.mjs b/server/pruef-team-ampel.mjs index 3eff0291..3964ecad 100644 --- a/server/pruef-team-ampel.mjs +++ b/server/pruef-team-ampel.mjs @@ -36,8 +36,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4385, "pruef-team-ampel"); -process.env.PORT = "4385"; +const PORT = await eigenerPort(import.meta, "pruef-team-ampel"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -45,11 +45,11 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-team-ampel"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4385"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0, geprueft = 0, offen = 0; const ok = (b, t) => { geprueft++; console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-team-stufen.mjs b/server/pruef-team-stufen.mjs index 3596c68f..cdc8e5fc 100644 --- a/server/pruef-team-stufen.mjs +++ b/server/pruef-team-stufen.mjs @@ -32,8 +32,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4375, "pruef-team-stufen"); -process.env.PORT = "4375"; +const PORT = await eigenerPort(import.meta, "pruef-team-stufen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -41,11 +41,11 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); notbremse(180_000, "pruef-team-stufen"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4375"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0, geprueft = 0, offen = 0; const ok = (b, t) => { geprueft++; console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-team.mjs b/server/pruef-team.mjs index 5c31aaed..b1c91514 100644 --- a/server/pruef-team.mjs +++ b/server/pruef-team.mjs @@ -33,10 +33,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-team-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4345, "die Team-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Team-Pruefung"); -process.env.PORT = "4345"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -46,7 +46,7 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( await import("./index.js"); notbremse(300_000, "pruef-team"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4345"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0, geprueft = 0; const ok = (b, t) => { geprueft++; console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-teilen.mjs b/server/pruef-teilen.mjs index 87d5c66e..9e36d1a0 100644 --- a/server/pruef-teilen.mjs +++ b/server/pruef-teilen.mjs @@ -28,10 +28,10 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { createServer } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4494, "pruef-teilen"); -const TIKTOK = await portMussFreiSein(4503, "nachgebautes TikTok"); +const PORT = await eigenerPort(import.meta, "pruef-teilen"); +const TIKTOK = await eigenerPort(import.meta, "nachgebautes TikTok", 1); const ordner = mkdtempSync(join(tmpdir(), "ws-teilen-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-teilnehmer.mjs b/server/pruef-teilnehmer.mjs index db3328c5..198142c0 100644 --- a/server/pruef-teilnehmer.mjs +++ b/server/pruef-teilnehmer.mjs @@ -33,10 +33,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-teiln-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); /* Der Port muss frei sein -- sonst wird gegen einen fremden Server gemessen. Begruendung in helfer-port.mjs. */ -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4321, "die Teilnehmerpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Teilnehmerpruefung"); -process.env.PORT = "4321"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -45,7 +45,7 @@ const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; await import("./index.js"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4321"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-tempo-workspace.mjs b/server/pruef-tempo-workspace.mjs index 8f5c540a..96269cb7 100644 --- a/server/pruef-tempo-workspace.mjs +++ b/server/pruef-tempo-workspace.mjs @@ -39,10 +39,10 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); /* Der Port muss frei sein -- sonst wird gegen einen fremden Server gemessen. Begruendung in helfer-port.mjs. */ import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4283, "die Tempopruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Tempopruefung"); -process.env.PORT = "4283"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -57,7 +57,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-tempo-workspace"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4283"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0; const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-terminregel.mjs b/server/pruef-terminregel.mjs index fc49bf6c..34bf7a66 100644 --- a/server/pruef-terminregel.mjs +++ b/server/pruef-terminregel.mjs @@ -31,10 +31,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { tagLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4192, "pruef-terminregel"); +const PORT = await eigenerPort(import.meta, "pruef-terminregel"); const ordner = mkdtempSync(join(tmpdir(), "ws-terminregel-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-treff-start.mjs b/server/pruef-treff-start.mjs index a62dc9f4..00ed37cb 100644 --- a/server/pruef-treff-start.mjs +++ b/server/pruef-treff-start.mjs @@ -34,10 +34,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { ersatzschreibungen } from "./helfer-deutsch.mjs"; -const PORT = await portMussFreiSein(4489, "pruef-treff-start"); +const PORT = await eigenerPort(import.meta, "pruef-treff-start"); const ordner = mkdtempSync(join(tmpdir(), "ws-start-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-treff-werkzeuge.mjs b/server/pruef-treff-werkzeuge.mjs index ffd870db..39c7e090 100644 --- a/server/pruef-treff-werkzeuge.mjs +++ b/server/pruef-treff-werkzeuge.mjs @@ -40,9 +40,9 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; import { heuteLokal } from "./helfer-tag.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4402, "pruef-treff-werkzeuge"); +const PORT = await eigenerPort(import.meta, "pruef-treff-werkzeuge"); const ordner = mkdtempSync(join(tmpdir(), "ws-treffw-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-treff.mjs b/server/pruef-treff.mjs index 5ee24bba..172c2f4f 100644 --- a/server/pruef-treff.mjs +++ b/server/pruef-treff.mjs @@ -41,9 +41,9 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4398, "pruef-treff"); +const PORT = await eigenerPort(import.meta, "pruef-treff"); const ordner = mkdtempSync(join(tmpdir(), "ws-treff-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-treffchat.mjs b/server/pruef-treffchat.mjs index 652f1075..59deb0af 100644 --- a/server/pruef-treffchat.mjs +++ b/server/pruef-treffchat.mjs @@ -38,7 +38,7 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; /* ==== ZWEI LAEUFE, EIN PROGRAMM ===================================== @@ -54,8 +54,14 @@ import { portMussFreiSein } from "./helfer-port.mjs"; nacheinander) und aus demselben Grund: Eine Gegenprobe, die nur behauptet wird, ist keine. */ const NACHTLAUF = process.env.TREFF_PRUEF_NACHT === "ja"; -const PORT = await portMussFreiSein(NACHTLAUF ? 4424 : 4423, - NACHTLAUF ? "pruef-treffchat (Nachtlauf)" : "pruef-treffchat"); +/* ZWEI NUMMERN, WEIL ES ZWEI LAEUFE SIND: Der Nachtlauf stellt die + Uhr um und muss neben dem Taglauf bestehen koennen -- mit derselben + Nummer schloessen sie einander aus. Genau dafuer hat jede Pruefdatei + zwei (nr = 0 und 1). Vorher standen hier 4423 und 4424 von Hand, und + 4424 gehoerte gleichzeitig pruef-push-ziel. */ +const PORT = await eigenerPort(import.meta, + NACHTLAUF ? "pruef-treffchat (Nachtlauf)" : "pruef-treffchat", + NACHTLAUF ? 1 : 0); const ordner = mkdtempSync(join(tmpdir(), "ws-treff-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-uebergang.mjs b/server/pruef-uebergang.mjs index 1264198d..b248f8dc 100644 --- a/server/pruef-uebergang.mjs +++ b/server/pruef-uebergang.mjs @@ -29,9 +29,9 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4420, "pruef-uebergang"); +const PORT = await eigenerPort(import.meta, "pruef-uebergang"); const ordner = mkdtempSync(join(tmpdir(), "ws-ueber-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-uebernahme.mjs b/server/pruef-uebernahme.mjs index cb683212..d1f89464 100644 --- a/server/pruef-uebernahme.mjs +++ b/server/pruef-uebernahme.mjs @@ -28,9 +28,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4414, "pruef-uebernahme"); +const PORT = await eigenerPort(import.meta, "pruef-uebernahme"); const ordner = mkdtempSync(join(tmpdir(), "ws-ueb-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-uebersicht-browser.mjs b/server/pruef-uebersicht-browser.mjs index 5b92f95e..bd497971 100644 --- a/server/pruef-uebersicht-browser.mjs +++ b/server/pruef-uebersicht-browser.mjs @@ -17,8 +17,8 @@ process.env.WORKSPACE_DB = join(ordner, "pruef.sqlite"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4177, "pruef-uebersicht-browser"); -process.env.PORT = "4177"; +const PORT = await eigenerPort(import.meta, "pruef-uebersicht-browser"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -30,7 +30,7 @@ express.response.cookie = function (name, wert, opt) { return echteCookie.call(this, name, wert, { ...(opt || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -40,7 +40,7 @@ await import("./index.js"); notbremse(150_000, "pruef-uebersicht-browser"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4177"; +const BASIS = `http://127.0.0.1:${PORT}`; /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des Benutzers; toISOString() liefert dagegen UTC und damit zwischen Mitternacht und 2 Uhr den VORTAG. In diesem Fenster schlug diese diff --git a/server/pruef-uebersicht.mjs b/server/pruef-uebersicht.mjs index d83a0d9e..c4f14412 100644 --- a/server/pruef-uebersicht.mjs +++ b/server/pruef-uebersicht.mjs @@ -10,7 +10,7 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; const ordner = mkdtempSync(join(tmpdir(), "ws-uebersicht-")); process.env.WORKSPACE_DB = join(ordner, "pruef.sqlite"); @@ -19,8 +19,8 @@ process.env.WORKSPACE_DB = join(ordner, "pruef.sqlite"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4176, "pruef-uebersicht"); -process.env.PORT = "4176"; +const PORT = await eigenerPort(import.meta, "pruef-uebersicht"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -35,7 +35,7 @@ express.response.cookie = function (name, wert, opt) { await import("./index.js"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4176"; +const BASIS = `http://127.0.0.1:${PORT}`; /* Notbremse. index.js faengt uncaughtException ab, damit die Website nicht an einem Einzelfehler stirbt -- im Test heisst das aber: ein diff --git a/server/pruef-verborgen.mjs b/server/pruef-verborgen.mjs index 6b870c74..47cd177a 100644 --- a/server/pruef-verborgen.mjs +++ b/server/pruef-verborgen.mjs @@ -11,8 +11,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4186, "pruef-verborgen"); -process.env.PORT = "4186"; +const PORT = await eigenerPort(import.meta, "pruef-verborgen"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -22,7 +22,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -31,7 +31,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-start-ansicht"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4186"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); /* ORTSZEIT, nicht UTC. Die Anwendung rechnet "heute" nach der Uhr des diff --git a/server/pruef-verteilen.mjs b/server/pruef-verteilen.mjs index d422ed1e..a21577f2 100644 --- a/server/pruef-verteilen.mjs +++ b/server/pruef-verteilen.mjs @@ -29,10 +29,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; -const PORT = await portMussFreiSein(4433, "pruef-verteilen"); +const PORT = await eigenerPort(import.meta, "pruef-verteilen"); const ordner = mkdtempSync(join(tmpdir(), "ws-verteilen-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-video.mjs b/server/pruef-video.mjs index 20315ad9..25e60693 100644 --- a/server/pruef-video.mjs +++ b/server/pruef-video.mjs @@ -40,10 +40,10 @@ import { mkdtempSync, rmSync, existsSync, readdirSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { createServer } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4499, "pruef-video"); -const TIKTOK = await portMussFreiSein(4501, "pruef-video (nachgebautes TikTok)"); +const PORT = await eigenerPort(import.meta, "pruef-video"); +const TIKTOK = await eigenerPort(import.meta, "pruef-video (nachgebautes TikTok)", 1); const ordner = mkdtempSync(join(tmpdir(), "ws-video-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-vorlagen.mjs b/server/pruef-vorlagen.mjs index e56883c3..38ace308 100644 --- a/server/pruef-vorlagen.mjs +++ b/server/pruef-vorlagen.mjs @@ -18,9 +18,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4197, "pruef-vorlagen"); +const PORT = await eigenerPort(import.meta, "pruef-vorlagen"); const ordner = mkdtempSync(join(tmpdir(), "ws-vorl-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-vorschlaege.mjs b/server/pruef-vorschlaege.mjs index 0c6f6da3..c76a0a0f 100644 --- a/server/pruef-vorschlaege.mjs +++ b/server/pruef-vorschlaege.mjs @@ -27,10 +27,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; -const PORT = await portMussFreiSein(4436, "pruef-vorschlaege"); +const PORT = await eigenerPort(import.meta, "pruef-vorschlaege"); const ordner = mkdtempSync(join(tmpdir(), "ws-vorschlag-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-wecker.mjs b/server/pruef-wecker.mjs index 52ffd3dd..042fdf02 100644 --- a/server/pruef-wecker.mjs +++ b/server/pruef-wecker.mjs @@ -47,10 +47,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-wecker-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4357, "die Weckerpruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Weckerpruefung"); -process.env.PORT = "4357"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; /* KEINE RUHEZEIT WAEHREND DER PRUEFUNG. @@ -77,7 +77,7 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( await import("./index.js"); notbremse(300_000, "pruef-wecker"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4357"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0, gemacht = 0; const ok = (b, t) => { gemacht++; console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; }; diff --git a/server/pruef-wege-nach-draussen.mjs b/server/pruef-wege-nach-draussen.mjs index 50a53b8d..61a60720 100644 --- a/server/pruef-wege-nach-draussen.mjs +++ b/server/pruef-wege-nach-draussen.mjs @@ -38,9 +38,9 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4196, "pruef-wege-nach-draussen"); +const PORT = await eigenerPort(import.meta, "pruef-wege-nach-draussen"); const ordner = mkdtempSync(join(tmpdir(), "ws-wege-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-werdegang.mjs b/server/pruef-werdegang.mjs index e2e93ec2..46409b8d 100644 --- a/server/pruef-werdegang.mjs +++ b/server/pruef-werdegang.mjs @@ -33,9 +33,9 @@ import { mkdtempSync, rmSync, readFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4422, "pruef-werdegang"); +const PORT = await eigenerPort(import.meta, "pruef-werdegang"); const ordner = mkdtempSync(join(tmpdir(), "ws-weg-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-wissen-neu.mjs b/server/pruef-wissen-neu.mjs index ca4d9b68..dd1a0978 100644 --- a/server/pruef-wissen-neu.mjs +++ b/server/pruef-wissen-neu.mjs @@ -20,8 +20,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4201, "pruef-wissen-neu"); -process.env.PORT = "4201"; +const PORT = await eigenerPort(import.meta, "pruef-wissen-neu"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -30,7 +30,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -39,7 +39,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-wissen-neu"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4201"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 200_000).unref?.(); let fehler = 0; diff --git a/server/pruef-womit.mjs b/server/pruef-womit.mjs index 636b20a3..7cd63d12 100644 --- a/server/pruef-womit.mjs +++ b/server/pruef-womit.mjs @@ -30,9 +30,9 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { request as httpAnfrage } from "node:http"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; -const PORT = await portMussFreiSein(4418, "pruef-womit"); +const PORT = await eigenerPort(import.meta, "pruef-womit"); const ordner = mkdtempSync(join(tmpdir(), "ws-womit-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); diff --git a/server/pruef-workspace-seiten.mjs b/server/pruef-workspace-seiten.mjs index 938effa3..485ab1ca 100644 --- a/server/pruef-workspace-seiten.mjs +++ b/server/pruef-workspace-seiten.mjs @@ -12,8 +12,8 @@ process.env.WORKSPACE_DB = join(ordner, "pruef.sqlite"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4178, "pruef-workspace-seiten"); -process.env.PORT = "4178"; +const PORT = await eigenerPort(import.meta, "pruef-workspace-seiten"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -25,7 +25,7 @@ express.response.cookie = function (n, w, o) { return echteCookie.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -34,7 +34,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-workspace-seiten"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4178"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 150_000).unref?.(); await fetch(BASIS + "/workspace/api/anmelden", { diff --git a/server/pruef-wunschliste.mjs b/server/pruef-wunschliste.mjs index 37ff269d..891301ac 100644 --- a/server/pruef-wunschliste.mjs +++ b/server/pruef-wunschliste.mjs @@ -38,10 +38,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal, tagLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4483, "pruef-wunschliste"); +const PORT = await eigenerPort(import.meta, "pruef-wunschliste"); const ordner = mkdtempSync(join(tmpdir(), "ws-wunsch-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-zeitraum.mjs b/server/pruef-zeitraum.mjs index 62252ab0..73f8c83e 100644 --- a/server/pruef-zeitraum.mjs +++ b/server/pruef-zeitraum.mjs @@ -25,10 +25,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; -const PORT = await portMussFreiSein(4437, "pruef-zeitraum"); +const PORT = await eigenerPort(import.meta, "pruef-zeitraum"); const ordner = mkdtempSync(join(tmpdir(), "ws-zeitraum-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-zentrale-ring.mjs b/server/pruef-zentrale-ring.mjs index 29ecf11c..2a389fbf 100644 --- a/server/pruef-zentrale-ring.mjs +++ b/server/pruef-zentrale-ring.mjs @@ -41,10 +41,10 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; import { heuteLokal, tagLokal } from "./helfer-tag.mjs"; -const PORT = await portMussFreiSein(4473, "pruef-zentrale-ring"); +const PORT = await eigenerPort(import.meta, "pruef-zentrale-ring"); const ordner = mkdtempSync(join(tmpdir(), "ws-ring-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); process.env.PORT = String(PORT); diff --git a/server/pruef-zustand-ansicht.mjs b/server/pruef-zustand-ansicht.mjs index 7c918f7e..f076d000 100644 --- a/server/pruef-zustand-ansicht.mjs +++ b/server/pruef-zustand-ansicht.mjs @@ -13,8 +13,8 @@ process.env.WORKSPACE_DB = join(ordner, "workspace.db"); STILL nicht -- und alles Folgende misst gegen einen fremden Stand. Das ist der dritte Ausgang: belegt ist etwas anderes als kaputt. */ -await portMussFreiSein(4182, "pruef-zustand-ansicht"); -process.env.PORT = "4182"; +const PORT = await eigenerPort(import.meta, "pruef-zustand-ansicht"); +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_ACCESS_CODE_DOGI = "DOGI-TEST-1"; process.env.SITE_ACCESS_CODE_VANVAN = "VANVAN-TEST-1"; @@ -24,7 +24,7 @@ const express = (await import("express")).default; const ec = express.response.cookie; express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); }; import { notbremse } from "./helfer-notbremse.mjs"; -import { portMussFreiSein } from "./helfer-port.mjs"; +import { eigenerPort } from "./helfer-port.mjs"; await import("./index.js"); /* DIE NOTBREMSE. Muss NACH index.js stehen: Der Server haengt dort zwei Auffangnetze ein, die einen Absturz nur protokollieren -- @@ -33,7 +33,7 @@ await import("./index.js"); Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */ notbremse(480_000, "pruef-zustand-ansicht"); await new Promise((r) => setTimeout(r, 700)); -const BASIS = "http://127.0.0.1:4182"; +const BASIS = `http://127.0.0.1:${PORT}`; setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 180_000).unref?.(); let fehler = 0; diff --git a/server/pruef-zwischenspeicher.mjs b/server/pruef-zwischenspeicher.mjs index 6d85ef5d..5341bf5a 100644 --- a/server/pruef-zwischenspeicher.mjs +++ b/server/pruef-zwischenspeicher.mjs @@ -28,10 +28,10 @@ const ordner = mkdtempSync(join(tmpdir(), "ws-cache-")); process.env.WORKSPACE_DB = join(ordner, "workspace.db"); import { notbremse } from "./helfer-notbremse.mjs"; -const { portMussFreiSein } = await import("./helfer-port.mjs"); -await portMussFreiSein(4343, "die Zwischenspeicher-Pruefung"); +const { eigenerPort } = await import("./helfer-port.mjs"); +const PORT = await eigenerPort(import.meta, "die Zwischenspeicher-Pruefung"); -process.env.PORT = "4343"; +process.env.PORT = `${PORT}`; process.env.SITE_ACCESS_SECRET = "lokaler-test"; process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00"; @@ -41,7 +41,7 @@ express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...( await import("./index.js"); notbremse(120_000, "pruef-zwischenspeicher"); await new Promise((r) => setTimeout(r, 900)); -const BASIS = "http://127.0.0.1:4343"; +const BASIS = `http://127.0.0.1:${PORT}`; let fehler = 0, geprueft = 0; const ok = (b, t) => { geprueft++; console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; };