2026-06-15 01:04:55 +02:00
|
|
|
#!/usr/bin/env bash
|
2026-10-16 04:56:38 +02:00
|
|
|
# Verlinkt Extension und mcp.json und kopiert models.json/settings.json aus dem Repo nach ~/.pi/agent/.
|
|
|
|
|
# Extension und mcp.json sind Symlinks: Änderungen im Repo gelten ab dem nächsten pi-Start bzw. /reload, und
|
|
|
|
|
# `pi mcp add` schreibt direkt ins Repo. Erneut ausführen nur nach Änderungen an models.json oder settings.json.
|
2026-06-15 01:04:55 +02:00
|
|
|
set -euo pipefail
|
|
|
|
|
REPO="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
|
|
|
|
|
|
mkdir -p ~/.pi/agent/extensions
|
|
|
|
|
|
2026-10-16 04:56:38 +02:00
|
|
|
# Links $1 (repo file) to $2; a previous, differing regular file is kept as .bak first.
|
|
|
|
|
link_file() {
|
|
|
|
|
local src="$1" dest="$2"
|
|
|
|
|
if [ -f "$dest" ] && [ ! -L "$dest" ] && ! cmp -s "$dest" "$src"; then
|
|
|
|
|
cp "$dest" "$dest.bak"
|
|
|
|
|
echo "Backup: $(basename "$dest") → $(basename "$dest").bak"
|
|
|
|
|
fi
|
|
|
|
|
ln -sfn "$src" "$dest"
|
|
|
|
|
echo "Verlinkt: $dest → $src"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
link_file "$REPO/pi-coding-extension.ts" ~/.pi/agent/extensions/pi-coding-extension.ts
|
|
|
|
|
link_file "$REPO/mcp.json" ~/.pi/agent/mcp.json
|
2026-06-15 01:04:55 +02:00
|
|
|
|
|
|
|
|
cp "$REPO/models.json" ~/.pi/agent/models.json
|
|
|
|
|
echo "Kopiert: models.json → ~/.pi/agent/"
|
|
|
|
|
|
2026-06-15 07:14:51 +02:00
|
|
|
# settings.json: nur die 'packages'-Liste aktualisieren, alle anderen Nutzer-Einstellungen
|
|
|
|
|
# (defaultProvider, defaultModel, enabledModels, …) bleiben unberührt.
|
|
|
|
|
# Grund: pi schreibt Modell-Auswahl und weitere Präferenzen in diese Datei — ein vollständiges
|
|
|
|
|
# Überschreiben würde sie bei jedem Deploy löschen.
|
|
|
|
|
PACKAGES=$(jq '.packages' "$REPO/settings.json")
|
2026-06-15 02:37:45 +02:00
|
|
|
if [ -f ~/.pi/agent/settings.json ]; then
|
|
|
|
|
cp ~/.pi/agent/settings.json ~/.pi/agent/settings.json.bak
|
|
|
|
|
echo "Backup: settings.json → settings.json.bak"
|
2026-06-15 07:14:51 +02:00
|
|
|
jq --argjson p "$PACKAGES" '.packages = $p' ~/.pi/agent/settings.json > /tmp/pi_settings_merge.json \
|
|
|
|
|
&& mv /tmp/pi_settings_merge.json ~/.pi/agent/settings.json
|
|
|
|
|
else
|
|
|
|
|
cp "$REPO/settings.json" ~/.pi/agent/settings.json
|
2026-06-15 02:37:45 +02:00
|
|
|
fi
|
2026-06-15 07:14:51 +02:00
|
|
|
echo "Aktualisiert: settings.json (nur packages-Feld) → ~/.pi/agent/"
|
2026-06-15 02:37:45 +02:00
|
|
|
|
2026-06-15 01:04:55 +02:00
|
|
|
echo ""
|
|
|
|
|
echo "Fertig. Bitte /reload in pi agent ausführen."
|