dotfiles/.local/bin/mullvad_update
2025-07-21 13:08:28 +00:00

26 lines
643 B
Bash
Executable File

#!/bin/bash -e
{ read -r AN; read -r PRV; } < <(pass mullvad | sed -n '1p; s/^Privkey:\s*//p')
ADDRESS="$(curl 'https://api.mullvad.net/wg/' \
-d "account=$AN" --data-urlencode "pubkey=$(wg pubkey <<< "$PRV")")"
j="$(curl 'https://api.mullvad.net/app/v1/relays/')"
q='.wireguard.relays[] | "\(.hostname) \(.ipv4_addr_in) \(.public_key)"'
DNS="$(jq -r '.wireguard.ipv4_gateway' <<< "$j")"
while read -r file endpoint pubkey; do
cat <<EOF > "$file.conf"
[Interface]
PrivateKey = $PRV
Address = $ADDRESS
DNS = $DNS
[Peer]
PublicKey = $pubkey
AllowedIPs = 0.0.0.0/0,::0/0
Endpoint = $endpoint:51820
EOF
done < <(jq -r "$q" <<< "$j")