#!/bin/bash # deploy.sh — lädt eine lokale Markdown-Datei auf den Wiki-Server hoch. # # Verwendung: # ./deploy.sh lokale-datei.md /ziel/pfad.md # # Beispiele: # ./deploy.sh notes.md /projekte/notes.md # ./deploy.sh index.md /index.md # # WIKI_TOKEN ist normalerweise der Zugriffskey deines Teams (aus teams.yaml) — # der Server leitet daraus automatisch das Zielteam ab, ein Team-Parameter ist # dann nicht nötig. # # Nutzt du stattdessen den globalen ADMIN_TOKEN, muss zusätzlich WIKI_TEAM # gesetzt sein (welches Team gemeint ist), z.B.: # WIKI_TOKEN= WIKI_TEAM=alpha ./deploy.sh notes.md /projekte/notes.md # Bei jedem Fehler sofort abbrechen (statt weiterzumachen mit kaputtem Zustand) set -e # ── Konfiguration ───────────────────────────────────────────────────────────── # Diese Werte vor dem ersten Einsatz anpassen! TOKEN="${WIKI_TOKEN:-mein-geheimer-token}" # Team-Key (oder Admin-Token, siehe oben) TEAM="${WIKI_TEAM:-}" # Nur nötig wenn TOKEN der Admin-Token ist SERVER="${WIKI_SERVER:-https://wiki.example.com}" # ── Argumente prüfen ────────────────────────────────────────────────────────── if [ "$#" -ne 2 ]; then echo "Fehler: Zwei Argumente erwartet." echo "" echo "Verwendung: $0 " echo "Beispiel: $0 notes.md /projekte/notes.md" exit 1 fi LOCAL_FILE="$1" # z.B. notes.md REMOTE_PATH="$2" # z.B. /projekte/notes.md # Prüfen ob die lokale Datei existiert if [ ! -f "$LOCAL_FILE" ]; then echo "Fehler: Datei nicht gefunden: $LOCAL_FILE" exit 1 fi # ── Upload ──────────────────────────────────────────────────────────────────── echo "Uploading $LOCAL_FILE → $REMOTE_PATH" # curl sendet die Datei als Multipart-Formular an den Server. # -f = Fehler bei HTTP-Fehlercodes (ohne -f würde curl auch bei 401 "OK" melden) # -H = Header setzen (Team-Key oder Admin-Token) # -F = Formularfeld (Multipart) # file=@$LOCAL_FILE → @ bedeutet: Dateiinhalt, nicht den String # path=$REMOTE_PATH → Zielpfad auf dem Server (relativ zum Team-Ordner) # team=$TEAM → nur beim Admin-Token nötig, sonst leer und wird ignoriert curl -f \ -H "Authorization: Bearer $TOKEN" \ -F "file=@$LOCAL_FILE" \ -F "path=$REMOTE_PATH" \ -F "team=$TEAM" \ "$SERVER/api/upload" echo "" echo "Fertig!"