feat: deploy-pi-config.sh verlinkt die Extension statt sie zu kopieren
Änderungen an pi-coding-extension.ts gelten damit für jeden pi-Aufruf ab dem nächsten Start bzw. /reload, ohne erneutes Deploy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
75ad2be498
commit
d2e83daa98
3 changed files with 25 additions and 7 deletions
11
README.md
11
README.md
|
|
@ -96,9 +96,14 @@ Das Install-Skript sichert eine vorhandene `~/.pi/agent/settings.json` als `.bak
|
|||
kopiert dann `settings.json` aus dem Repo. Damit ist der korrekte Default-Provider
|
||||
(`llama-cpp-single/coding_model`) automatisch konfiguriert.
|
||||
|
||||
Nach späteren Änderungen an `pi-coding-extension.ts` oder `models.json`:
|
||||
Die Extension wird nicht kopiert, sondern verlinkt
|
||||
(`~/.pi/agent/extensions/pi-coding-extension.ts` → Repo). Änderungen an `pi-coding-extension.ts` gelten
|
||||
damit für jeden pi-Aufruf ab dem nächsten Start bzw. `/reload`, ohne erneutes Deploy. Das gilt auch für noch
|
||||
nicht committete Änderungen.
|
||||
|
||||
Nach späteren Änderungen an `models.json` oder `settings.json`:
|
||||
```bash
|
||||
./deploy-pi-config.sh # kopiert nach ~/.pi/agent/
|
||||
./deploy-pi-config.sh # verlinkt die Extension, kopiert models.json, settings.json (nur packages)
|
||||
# dann /reload in pi agent
|
||||
```
|
||||
|
||||
|
|
@ -259,7 +264,7 @@ und Extension-Guards gegen Regressionen.
|
|||
| `start-coding-server.sh` | Single-Server starten (Port 8001, Coder + Judge) |
|
||||
| `stop-coding-server.sh` | Container stoppen |
|
||||
| `status-coding-server.sh` | Laufstatus anzeigen |
|
||||
| `deploy-pi-config.sh` | Extension + models.json + settings.json nach `~/.pi/agent/` deployen |
|
||||
| `deploy-pi-config.sh` | Extension nach `~/.pi/agent/extensions/` verlinken, models.json + settings.json kopieren |
|
||||
| `examples/` | Demo-Projekte (Python, Rust, Go, C, Bash, HTML/JS) für Live-Demos |
|
||||
| `examples/restore-all.sh` | Examples nach Demo-Lauf in Ausgangszustand zurücksetzen |
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
# Kopiert die versionierten Dateien aus dem Repo nach ~/.pi/agent/.
|
||||
# Nach jeder Änderung im Repo ausführen, damit pi agent die neue Version lädt.
|
||||
# Verlinkt die Extension und kopiert models.json/settings.json aus dem Repo nach ~/.pi/agent/.
|
||||
# Die Extension ist ein Symlink: Änderungen im Repo gelten ab dem nächsten pi-Start bzw. /reload.
|
||||
# Erneut ausführen nur nach Änderungen an models.json oder settings.json.
|
||||
set -euo pipefail
|
||||
REPO="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
mkdir -p ~/.pi/agent/extensions
|
||||
|
||||
cp "$REPO/pi-coding-extension.ts" ~/.pi/agent/extensions/pi-coding-extension.ts
|
||||
echo "Kopiert: pi-coding-extension.ts → ~/.pi/agent/extensions/"
|
||||
# A previous, differing copy is kept as .bak before it is replaced by the symlink.
|
||||
EXT=~/.pi/agent/extensions/pi-coding-extension.ts
|
||||
if [ -f "$EXT" ] && [ ! -L "$EXT" ] && ! cmp -s "$EXT" "$REPO/pi-coding-extension.ts"; then
|
||||
cp "$EXT" "$EXT.bak"
|
||||
echo "Backup: pi-coding-extension.ts → pi-coding-extension.ts.bak"
|
||||
fi
|
||||
ln -sfn "$REPO/pi-coding-extension.ts" "$EXT"
|
||||
echo "Verlinkt: ~/.pi/agent/extensions/pi-coding-extension.ts → $REPO/pi-coding-extension.ts"
|
||||
|
||||
cp "$REPO/models.json" ~/.pi/agent/models.json
|
||||
echo "Kopiert: models.json → ~/.pi/agent/"
|
||||
|
|
|
|||
|
|
@ -44,3 +44,9 @@ test("install-Skript deployt settings.json mit vorherigem Backup", () => {
|
|||
assert.match(s, /cp "\$REPO\/models\.json"/);
|
||||
assert.match(s, /pi-coding-extension\.ts/);
|
||||
});
|
||||
|
||||
test("install-Skript verlinkt die Extension statt sie zu kopieren", () => {
|
||||
const s = readRepoFile("deploy-pi-config.sh");
|
||||
assert.match(s, /ln -sfn "\$REPO\/pi-coding-extension\.ts" "\$EXT"/);
|
||||
assert.doesNotMatch(s, /cp "\$REPO\/pi-coding-extension\.ts"/, "cp auf den Symlink bricht mit 'same file' ab");
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue