#!/bin/bash set -eu [ -n "${DEBUG:-}" ] && set -x update() { local ts_acct ts_ip local class text alt if tailscale status | grep -q stopped; then return 1 fi ts_ip=$(tailscale ip -1 || return 1) ts_acct=$(tailscale switch --list 2>/dev/null | awk '/\*$/{ print gensub(/^.* ([^ ]+)\*$/, "\\1", "1") }') alt="$ts_acct" class="$ts_acct" # only display account name when not "main" [ "$ts_acct" = "main" ] || text=$ts_acct if tailscale exit-node list | grep -q selected; then alt="exit-node" class="exit-node" fi jq -nrc '{text:$text,tooltip:$tip,class:$class,alt:$alt}' \ --arg tip "${ts_ip:?}" \ --arg class "${class:?}" \ --arg alt "${alt:?}" \ --arg text "${text:-}" } update || echo '{}'