2026-05-29 08:19:50 +00:00
#!/usr/bin/env fish
# deploy.fish – Copilot-Setup auf Linux mit fish-Shell deployen
# Usage: fish scripts/deploy.fish
set REPO_DIR ( dirname ( status filename) ) /..
set REPO_DIR ( realpath $REPO_DIR )
echo "=== Copilot Setup Deploy (Linux/fish) ==="
echo " Source: $REPO_DIR "
# ── 1. VS Code User-Verzeichnis ermitteln ─────────────────────────────────────
# Remote (VS Code Server)
if test -d /home/( whoami ) /.vscode-server/data/User
set VSCODE_USER /home/( whoami ) /.vscode-server/data/User
# Flatpak
else if test -d $HOME /.var/app/com.visualstudio.code/config/Code/User
set VSCODE_USER $HOME /.var/app/com.visualstudio.code/config/Code/User
# Standard Linux
else
set VSCODE_USER $HOME /.config/Code/User
end
echo " VS Code User dir: $VSCODE_USER "
# ── 2. User settings.json mergen / anlegen ────────────────────────────────────
if test -f $VSCODE_USER /settings.json
echo " ─ settings.json exists – skipping (merge manually if needed)"
echo " Reference: $REPO_DIR /user-settings/settings.json "
else
mkdir -p $VSCODE_USER
cp $REPO_DIR /user-settings/settings.json $VSCODE_USER /settings.json
echo " ✓ settings.json deployed"
end
# ── 3. Prompt Files ───────────────────────────────────────────────────────────
mkdir -p $VSCODE_USER /prompts
for f in $REPO_DIR /prompts/*.prompt.md
set fname ( basename $f )
if test -f $VSCODE_USER /prompts/$fname
echo " ─ prompts/ $fname already exists, skipping "
else
cp $f $VSCODE_USER /prompts/$fname
echo " ✓ prompts/ $fname deployed "
end
end
# ── 4. Git-Templates ──────────────────────────────────────────────────────────
set GIT_TEMPLATE_DIR $HOME /.git-templates
2026-05-30 17:19:52 +00:00
mkdir -p $GIT_TEMPLATE_DIR /.github $GIT_TEMPLATE_DIR /.vscode \
$GIT_TEMPLATE_DIR /hooks $GIT_TEMPLATE_DIR /docs \
$GIT_TEMPLATE_DIR /history /summary
2026-05-29 08:19:50 +00:00
cp $REPO_DIR /git-templates/.github/copilot-instructions.md $GIT_TEMPLATE_DIR /.github/
cp $REPO_DIR /git-templates/.vscode/settings.json $GIT_TEMPLATE_DIR /.vscode/
cp $REPO_DIR /git-templates/.vscode/extensions.json $GIT_TEMPLATE_DIR /.vscode/
2026-05-30 17:19:52 +00:00
cp $REPO_DIR /git-templates/hooks/pre-commit $GIT_TEMPLATE_DIR /hooks/
chmod +x $GIT_TEMPLATE_DIR /hooks/pre-commit
cp $REPO_DIR /git-templates/docs/USER.md $GIT_TEMPLATE_DIR /docs/
cp $REPO_DIR /git-templates/docs/ADMIN.md $GIT_TEMPLATE_DIR /docs/
cp $REPO_DIR /git-templates/docs/MAINTAINER.md $GIT_TEMPLATE_DIR /docs/
cp $REPO_DIR /git-templates/history /summary/PROJECT_CONTEXT.md $GIT_TEMPLATE_DIR /history /summary/
2026-05-29 08:19:50 +00:00
git config --global init.templateDir $GIT_TEMPLATE_DIR
echo " ✓ git-templates deployed → $GIT_TEMPLATE_DIR "
echo " ✓ git config init.templateDir set"
2026-05-30 17:19:52 +00:00
# ── 5. Bootstrap-Skripte ──────────────────────────────────────────────────────
2026-05-29 08:19:50 +00:00
mkdir -p $HOME /.local/bin
2026-05-30 17:19:52 +00:00
cp $REPO_DIR /scripts/copilot-bootstrap.sh $HOME /.local/bin/copilot-bootstrap.sh
chmod +x $HOME /.local/bin/copilot-bootstrap.sh
echo " ✓ copilot-bootstrap.sh installed to ~/.local/bin/"
2026-05-29 08:19:50 +00:00
cp $REPO_DIR /scripts/copilot-bootstrap.fish $HOME /.local/bin/copilot-bootstrap.fish
chmod +x $HOME /.local/bin/copilot-bootstrap.fish
echo " ✓ copilot-bootstrap.fish installed to ~/.local/bin/"
2026-05-30 17:19:52 +00:00
# ── 6. Git-Alias: git init → auto-bootstrap ───────────────────────────────────
# Verwendet git --exec-path um Rekursion zu vermeiden (kein Alias-Loop).
git config --global alias.init '!f() { dir=.; for a in "$@"; do case "$a" in -*) ;; *) dir="$a" ;; esac; done; "$(git --exec-path)/git-init" "$@" && "$HOME/.local/bin/copilot-bootstrap.sh" "$dir"; }; f'
echo " ✓ git alias 'init' gesetzt (führt copilot-bootstrap.sh automatisch aus)"
2026-05-29 08:19:50 +00:00
echo ""
echo "=== Done ==="
echo "Next: Activate Settings Sync in VS Code (Ctrl+Shift+P → 'Settings Sync: Turn On')"