wagon/back/lib/wg_user_list

23 lines
842 B
Plaintext
Raw Normal View History

2022-08-29 01:04:37 -06:00
#!/bin/bash
# FILE: wagon:back/lib/wg/user/list
2022-08-29 01:04:37 -06:00
# DESCRIPTION: List all devices from all users
# USAGE: list json|tsv
source /etc/wagon/config
2022-08-29 01:04:37 -06:00
/usr/bin/wg show "${TLD}" allowed-ips | \
while IFS=$' ' read -r pubkey ipv4 ipv6; do
2022-08-29 01:04:37 -06:00
ipv4="${ipv4%%/*}"
ipv6="${ipv6%%/*}"
domain="$(/usr/lib/wagon/ns_lookup_rdns "${ipv4}")" || exit 4
2022-09-08 21:15:30 -06:00
username="$(<<<"${domain}" cut -d'.' -f2)"
hostname="$(<<<"${domain}" cut -d'.' -f1)"
2022-09-08 21:18:03 -06:00
case "${2}" in
#TODO Remove json keys with empty ("") values
2022-11-07 16:20:52 -07:00
'json') printf '{"domain":"%s.%s.%s","ipv4":"%s","ipv6":"%s","pubkey":"%s}"},' \
2022-09-08 21:18:03 -06:00
"${hostname}" "${username}" "${TLD}" "${ipv4}" "${ipv6}" "${pubkey}";;
2022-11-07 16:20:52 -07:00
*) printf '%s.%s.%s\t%s\t%s\t%s\n' \
"${hostname}" "${username}" "${TLD}" "${ipv4}" "${ipv6}" "${pubkey}";;
esac
2022-08-29 01:04:37 -06:00
done | sed 's/,$//' # Remove trailing comma from json