#!/usr/bin/env bash # relaunch-screen.sh [fuse] — restart an RCEO screen so it # re-reads ~/.screenrc (termcapinfo scroll fix). Fuse >0 schedules via helper # screen (used to restart RCEO-PMO from inside itself). Owner-run; no root. set -euo pipefail name="${1:?screen name}"; role="${2:?pmo|work}"; fuse="${3:-0}" SELF="$HOME/.coordinate/scripts/relaunch-screen.sh" if [ "$fuse" -gt 0 ]; then screen -S RCEO-Relaunch -X quit 2>/dev/null || true screen -dmS RCEO-Relaunch bash -c "sleep $fuse; $SELF $name $role 0" echo "scheduled: $name restart in ${fuse}s" exit 0 fi screen -S "$name" -X quit 2>/dev/null || true sleep 2 screen -dmS "$name" "$HOME/.coordinate/scripts/pmo-loop.sh" "$role" sleep 5 if screen -ls 2>/dev/null | grep -q "\.$name"; then echo "OK: $name relaunched" else echo "FAILED: $name not present after relaunch" >&2; exit 1 fi