blob: 3a2ce7596cec7aeeddeeb7523f1a5bf943726cb8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#!/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"
tip="$ts_ip"
# only display account name when not "main"
[ "$ts_acct" = "main" ] || text=$ts_acct
en_name=$(tailscale exit-node list | grep selected)
if test -n "$en_name"; then
alt="exit-node"
class="exit-node"
tip="$(awk '{printf "%s (%s)", $2, $1}' <<<"$en_name")"
fi
jq -nrc '{text:$text,tooltip:$tip,class:$class,alt:$alt}' \
--arg tip "${tip:?}" \
--arg class "${class:?}" \
--arg alt "${alt:?}" \
--arg text "${text:-}"
}
update || echo '{}'
|