docs: das Wiki gibt es jetzt -- und es kommt aus docs/
Gitea legt das Wiki-Repo erst mit der ersten Seite an; Klon und Push antworten davor mit 500, obwohl has_wiki auf true steht. Angelegt ueber die API (POST /api/v1/repos/<besitzer>/<repo>/wiki/new) -- danach ist es ein gewoehnliches Git-Repo und laesst sich klonen wie jedes andere. https://git.d4rkst3r.de/D4rkst3r/d4rk_media/wiki DIE QUELLE BLEIBT docs/ IM REPO. Ein Wiki hat keinen Zusammenhang mit dem Code: niemand sieht, ob die Anleitung noch zu dem passt, was der Dienst tut. Unter docs/ wandert sie im selben Commit mit der Aenderung, die sie beschreibt. tools/wiki.ps1 traegt sie danach hinaus -- EINSEITIG, und die Wiki-Seite sagt das auch: wer dort tippt, verliert es beim naechsten Lauf. Unschoen, aber ehrlicher als zwei Quellen, die auseinanderlaufen. Zwei Seiten: Home (Zuschnitt, was der Dienst kann, was zu tun ist, wenn etwas nicht geht) und API (Endpunkte, Kopfzeilen, Fehlerantworten, Grenzen -- und die beiden Proxy-Fallen von heute). Nachgemessen: beide Seiten sind ohne Anmeldung lesbar (200), ein zweiter Lauf des Skripts erkennt "bereits aktuell", und eine Aenderung kommt an. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# docs/ ins Gitea-Wiki schieben.
|
||||
#
|
||||
# Aufruf: pwsh -File tools\wiki.ps1
|
||||
#
|
||||
# WARUM DIE DATEIEN IM REPO LIEGEN UND NICHT NUR IM WIKI. Ein Wiki hat keinen
|
||||
# Zusammenhang mit dem Code: niemand sieht, ob die Anleitung noch zu dem passt,
|
||||
# was der Dienst tut. Unter docs/ wandert sie im selben Commit mit der
|
||||
# Aenderung, die sie beschreibt — und dieses Skript traegt sie danach hinaus.
|
||||
#
|
||||
# Die Richtung ist bewusst EINSEITIG: docs/ ist die Quelle, das Wiki die Kopie.
|
||||
# Wer im Wiki tippt, verliert es beim naechsten Lauf. Das ist unschoen, aber
|
||||
# ehrlicher als zwei Quellen, die auseinanderlaufen.
|
||||
#
|
||||
# DAS WIKI MUSS EINMAL EXISTIEREN. Gitea legt das Wiki-Repo erst mit der ersten
|
||||
# Seite an; ein Klon davor antwortet mit 500. Angelegt wurde es ueber die API
|
||||
# (POST /api/v1/repos/<besitzer>/<repo>/wiki/new) — danach ist es ein
|
||||
# gewoehnliches Git-Repo.
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[string]$Wiki = 'https://git.d4rkst3r.de/D4rkst3r/d4rk_media.wiki.git',
|
||||
[string]$Quelle = 'docs'
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
function Gut($t) { Write-Host " $t" -ForegroundColor Green }
|
||||
|
||||
$dateien = Get-ChildItem $Quelle -Filter '*.md'
|
||||
if (-not $dateien) { Write-Host " Nichts in $Quelle" -ForegroundColor Yellow; exit 0 }
|
||||
|
||||
$tmp = Join-Path $env:TEMP ("wiki-" + [guid]::NewGuid().ToString('N').Substring(0, 8))
|
||||
git clone --quiet $Wiki $tmp
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host ' Klon fehlgeschlagen. Gibt es das Wiki schon? (Erste Seite ueber die Oberflaeche anlegen.)' -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
foreach ($d in $dateien) {
|
||||
Copy-Item $d.FullName (Join-Path $tmp $d.Name) -Force
|
||||
Gut $d.Name
|
||||
}
|
||||
|
||||
Push-Location $tmp
|
||||
git add -A
|
||||
# Nichts geaendert ist kein Fehler: dann steht das Wiki schon richtig da.
|
||||
$status = git status --porcelain
|
||||
if (-not $status) {
|
||||
Pop-Location
|
||||
Remove-Item $tmp -Recurse -Force
|
||||
Gut 'Das Wiki ist bereits aktuell.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
git commit --quiet -m ("Anleitung aus docs/ — " + (Get-Date -Format 'yyyy-MM-dd HH:mm'))
|
||||
git push --quiet
|
||||
$ok = $LASTEXITCODE -eq 0
|
||||
Pop-Location
|
||||
Remove-Item $tmp -Recurse -Force
|
||||
|
||||
if ($ok) { Gut 'Ins Wiki geschoben.' }
|
||||
else { Write-Host ' Push fehlgeschlagen.' -ForegroundColor Red; exit 1 }
|
||||
Reference in New Issue
Block a user