blob: 53b0409eade915de6ca922b50cfd67f1e20da9a7 (
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
|
#!/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 '{}'
|