--- /dev/null
+#!/bin/bash
+
+
+set -e; . /usr/local/lib/err; set +e
+
+remote=$1
+fastcon=0
+while true; do
+ start=$EPOCHSECONDS
+ ssh -t $remote screen -Dr -S profanity
+ if (( EPOCHSECONDS > start + 600 )); then
+ fastcon=0
+ fi
+ # we try to reconnect quickly for a while (just once as I write this),
+ # then try to reconnect slowly.
+ if (( fastcon < 1 )); then
+ echo "waiting 10. any key to cancel"
+ read -rsN1 -t 10 ||:
+ fastcon=$((fastcon+1))
+ else
+ echo "waiting 120. any key to cancel"
+ # like sleep but stop on any input
+ read -rsN1 -t 120 ||:
+ fi
+done