31 lines
1,005 B
Bash
31 lines
1,005 B
Bash
#!/bin/bash
|
||
# Hält einen Remote-Control-Server für ein Projekt am Laufen.
|
||
# Aufruf: rc-loop <projektordner> <git-url>
|
||
dir="$1"
|
||
url="$2"
|
||
|
||
# Strg+C beendet nur den laufenden Server, nicht diese Schleife.
|
||
trap 'echo " (Strg+C – Neustart folgt; zum Verlassen von tmux: Strg+b, dann d)"' INT
|
||
|
||
while true; do
|
||
if [ ! -d "$dir/.git" ]; then
|
||
echo "[$(date '+%F %T')] Klone $url nach $dir ..."
|
||
if ! git clone "$url" "$dir"; then
|
||
echo "Klonen fehlgeschlagen (SSH-Key in Forgejo hinterlegt? Repo vorhanden?). Neuer Versuch in 60 s."
|
||
sleep 60
|
||
continue
|
||
fi
|
||
fi
|
||
|
||
if [ ! -s "$HOME/.claude/.credentials.json" ]; then
|
||
echo "Noch nicht eingeloggt. Einmalig im Container 'claude' starten und /login ausführen. Neuer Versuch in 60 s."
|
||
sleep 60
|
||
continue
|
||
fi
|
||
|
||
cd "$dir" || exit 1
|
||
echo "[$(date '+%F %T')] Starte Remote-Control-Server in $dir"
|
||
claude remote-control --spawn worktree
|
||
echo "[$(date '+%F %T')] Server beendet (Exit $?). Neustart in 30 s."
|
||
sleep 30
|
||
done
|