Skip to content

Instantly share code, notes, and snippets.

@raghavauppuluri13
Created October 14, 2025 00:35
Show Gist options
  • Save raghavauppuluri13/c0f84aa1495e7ea921cca27df5615a01 to your computer and use it in GitHub Desktop.
Save raghavauppuluri13/c0f84aa1495e7ea921cca27df5615a01 to your computer and use it in GitHub Desktop.
bracketbot wifi jetson
#!/usr/bin/env bash
# bbssh: try bracketbot-<ID>.local, auto-increment ID up to 10 tries, then ssh on success
set -euo pipefail
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <ID> [ssh-args...]" >&2
exit 1
fi
ID="$1"; shift || true
TRIES=10
host_for() { printf "bracketbot-%s.local" "$1"; }
ping_01s() {
local host="$1"
# Linux: -W (ms) with iputils ping; macOS/FreeBSD: -W (ms) also works for recent versions.
# Fallback to BSD-style: -t (ttl) + short sleep guard.
if ping -c1 -W 100 "$host" >/dev/null 2>&1; then
return 0
fi
# Try BSD-ish variant if first failed quickly (option-wise)
if ping -c1 -t 1 "$host" >/dev/null 2>&1; then
return 0
fi
return 1
}
try=0
while (( try < TRIES )); do
host="$(host_for "$ID")"
echo "[bbssh] Probing ${host} (attempt $((try+1))/$TRIES)..."
if ping_01s "$host"; then
echo "[bbssh] Host is up: $host"
exec ssh "bracketbot@${host}" "$@"
fi
echo "[bbssh] No response within 0.5s. Incrementing ID."
# Increment while preserving any leading zeros (e.g., 001 -> 002)
if [[ "$ID" =~ ^0*[0-9]+$ ]]; then
width=${#ID}
num=$((10#$ID + 1))
printf -v ID "%0${width}d" "$num"
else
# If not purely numeric, just append +1
ID="${ID}1"
fi
((try++))
done
echo "[bbssh] Gave up after $TRIES attempts." >&2
exit 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment