#! /usr/bin/env bash # Toggle tailscale exit node if [[ "$(tailscale status --json | jq .ExitNodeStatus.Online)" == 'true' ]]; then tailscale set --exit-node= notify-send '> vpn' 'Disconnected' --urgency low elif [[ "${1-}" == '-s' ]]; then # TODO: Remove regex workaround when tailscale v1.70.0 is in nixpkgs suggested="$(tailscale exit-node suggest | sed --regexp-extended --quiet 's/Suggested exit node: (.+)\./\1/p')" tailscale set --exit-node="$suggested" --exit-node-allow-lan-access notify-send '> vpn' "Connected to $suggested" --urgency low else tailscale set --exit-node="$1" --exit-node-allow-lan-access notify-send '> vpn' "Connected to $1" --urgency low fi