rd13_copilot_setup/scripts/copilot-update.fish
Conrad Schulz d9508f7bf1 refactor: post-commit Git-Block entfernt
- git-templates/hooks/post-commit: no-op (kein automatischer Git-Block mehr)
- Session-Datei: appended Git-Block entfernt, nur Agent-Inhalt bleibt
- Auto-Stub 2026-06-03_master_ca7f52b.md geloescht
- copilot-instructions.md (beide): Suffix-Erklaerung auf Check 6 umgeschrieben
- prompts/history.prompt.md: post-commit Referenz entfernt
- docs/MAINTAINER.md: post-commit Zeile aus Dateistruktur entfernt
- README.md: post-commit Zeile aus Struktur + Tabelle entfernt
- scripts/copilot-update.fish: post-commit nicht mehr kopiert
- scripts/deploy.sh: post-commit nicht mehr installiert
2026-06-03 06:17:20 +00:00

150 lines
5.7 KiB
Fish
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env fish
# copilot-update.fish
# Zieht die neueste Version des Copilot-Setup-Repos und aktualisiert:
# - Globale Git-Templates (~/.git-templates/)
# - VS Code Prompt-Dateien
# - Git-Hooks im aktuellen Repo (pre-commit)
# - .github/copilot-instructions.md (nur wenn noch TODO-Platzhalter enthalten)
#
# Usage:
# fish ~/.local/bin/copilot-update.fish
# git copilot-update (via Alias, ruft copilot-update.sh auf)
set SETUP_REPO_SSH "ssh://git@192.168.178.6:2222/cschulz/rd13_copilot_setup.git"
set SETUP_REPO_HTTP "http://192.168.178.6:8083/cschulz/rd13_copilot_setup.git"
if set -q COPILOT_SETUP_DIR
set CACHE_DIR $COPILOT_SETUP_DIR
else
set CACHE_DIR $HOME/.copilot-setup
end
echo "=== Copilot Update ==="
# ── 1. Setup-Repo Cache aktuell halten ───────────────────────────────────────
if test -d $CACHE_DIR/.git
echo " → Pulling latest from setup repo..."
if git -C $CACHE_DIR pull --ff-only --quiet 2>/dev/null
echo " ✓ Cache aktualisiert: $CACHE_DIR"
else
echo " ✗ git pull fehlgeschlagen versuche neu zu klonen..."
rm -rf $CACHE_DIR
end
end
if not test -d $CACHE_DIR/.git
echo " → Klone Setup-Repo (SSH)..."
if git clone --quiet $SETUP_REPO_SSH $CACHE_DIR 2>/dev/null
echo " ✓ Geklont via SSH"
else
echo " ✗ SSH fehlgeschlagen versuche HTTP-Fallback..."
if git clone --quiet $SETUP_REPO_HTTP $CACHE_DIR 2>/dev/null
echo " ✓ Geklont via HTTP"
else
echo ""
echo " ✗ FEHLER: Setup-Repo nicht erreichbar."
echo " SSH: $SETUP_REPO_SSH"
echo " HTTP: $SETUP_REPO_HTTP"
exit 1
end
end
end
set SOURCE $CACHE_DIR
# ── 2. Globale Git-Templates aktualisieren ────────────────────────────────────
set GIT_TEMPLATE_DIR $HOME/.git-templates
mkdir -p $GIT_TEMPLATE_DIR/.github $GIT_TEMPLATE_DIR/.vscode \
$GIT_TEMPLATE_DIR/hooks $GIT_TEMPLATE_DIR/docs \
$GIT_TEMPLATE_DIR/history/summary
cp $SOURCE/git-templates/.github/copilot-instructions.md $GIT_TEMPLATE_DIR/.github/
cp $SOURCE/git-templates/.vscode/settings.json $GIT_TEMPLATE_DIR/.vscode/
cp $SOURCE/git-templates/.vscode/extensions.json $GIT_TEMPLATE_DIR/.vscode/
cp $SOURCE/git-templates/hooks/pre-commit $GIT_TEMPLATE_DIR/hooks/
chmod +x $GIT_TEMPLATE_DIR/hooks/pre-commit
if test -f $SOURCE/git-templates/hooks/post-merge
cp $SOURCE/git-templates/hooks/post-merge $GIT_TEMPLATE_DIR/hooks/
chmod +x $GIT_TEMPLATE_DIR/hooks/post-merge
end
cp $SOURCE/git-templates/docs/USER.md $GIT_TEMPLATE_DIR/docs/
cp $SOURCE/git-templates/docs/ADMIN.md $GIT_TEMPLATE_DIR/docs/
cp $SOURCE/git-templates/docs/MAINTAINER.md $GIT_TEMPLATE_DIR/docs/
cp $SOURCE/git-templates/history/summary/PROJECT_CONTEXT.md $GIT_TEMPLATE_DIR/history/summary/
echo " ✓ ~/.git-templates/ aktualisiert"
# ── 3. VS Code Prompt-Dateien aktualisieren ───────────────────────────────────
if test -d $HOME/.vscode-server/data/User
set VSCODE_USER $HOME/.vscode-server/data/User
else if test -d "$HOME/Library/Application Support/Code/User"
set VSCODE_USER "$HOME/Library/Application Support/Code/User"
else
set VSCODE_USER $HOME/.config/Code/User
end
if test -d $VSCODE_USER
mkdir -p $VSCODE_USER/prompts
set PROMPTS_UPDATED 0
for f in $SOURCE/prompts/*.prompt.md
set fname (basename $f)
cp $f $VSCODE_USER/prompts/$fname
set PROMPTS_UPDATED (math $PROMPTS_UPDATED + 1)
end
echo "$PROMPTS_UPDATED Prompt-Dateien aktualisiert → $VSCODE_USER/prompts/"
else
echo " ─ VS Code User-Verzeichnis nicht gefunden, Prompts übersprungen"
end
# ── 4. Repo-lokale Updates (nur wenn in einem Git-Repo) ──────────────────────
set REPO_ROOT (git rev-parse --show-toplevel 2>/dev/null)
if test -z "$REPO_ROOT"
echo ""
echo " ─ Kein Git-Repo erkannt repo-lokale Updates übersprungen"
echo ""
echo "=== Done ==="
exit 0
end
echo ""
echo " Git-Repo erkannt: $REPO_ROOT"
# ── 4a. Git-Hooks aktualisieren ───────────────────────────────────────────────
set HOOKS_DIR $REPO_ROOT/.git/hooks
mkdir -p $HOOKS_DIR
set HOOKS_UPDATED 0
for hook in pre-commit
if test -f $SOURCE/git-templates/hooks/$hook
cp $SOURCE/git-templates/hooks/$hook $HOOKS_DIR/$hook
chmod +x $HOOKS_DIR/$hook
set HOOKS_UPDATED (math $HOOKS_UPDATED + 1)
echo " ✓ .git/hooks/$hook aktualisiert"
end
end
if test $HOOKS_UPDATED -eq 0
echo " ─ Keine Hook-Templates gefunden"
end
# ── 4b. copilot-instructions.md: nur wenn TODO-Platzhalter vorhanden ─────────
set COPILOT_INSTRUCTIONS $REPO_ROOT/.github/copilot-instructions.md
if test -f $COPILOT_INSTRUCTIONS
if grep -q "TODO" $COPILOT_INSTRUCTIONS 2>/dev/null
set BACKUP $COPILOT_INSTRUCTIONS.bak
cp $COPILOT_INSTRUCTIONS $BACKUP
cp $SOURCE/git-templates/.github/copilot-instructions.md $COPILOT_INSTRUCTIONS
echo " ✓ .github/copilot-instructions.md aktualisiert"
echo " (Backup: .github/copilot-instructions.md.bak)"
else
echo " ─ .github/copilot-instructions.md übersprungen (keine TODOs angepasst)"
end
else
echo " ─ .github/copilot-instructions.md nicht vorhanden, übersprungen"
end
echo ""
echo "=== Done ==="
echo "Tipp: 'git copilot-update' jederzeit ausführen um Templates aktuell zu halten."