52 lines
846 B
Bash
Executable File

#!/bin/bash
set -eu
set -o pipefail
running_dir="$(dirname "$(readlink -f "$0")")"
wg_interface="$(grep 'tunnel_id' "$running_dir/config.ini" \
| sed -r 's/[^=]+=\s*//')"
assist() {
cat <<EOF
Usage: $0 <action> [<ip>]
Actions:
add <ip> Add a route to the tunnel for this ip
del <ip> Remove a route to the tunnel for this ip
reload Sync running tunnel config with configuration on disk
EOF
exit "$1"
}
add() {
ip route add "$1" dev "$wg_interface" scope link
}
del() {
ip route del "$1" dev "$wg_interface" scope link
}
reload() {
systemctl reload "wg-quick@$wg_interface.service"
}
if [ "$#" = 0 ]; then
assist 0
fi
action="$1"
shift
case "$action" in
add )
add "$1"
;;
del )
del "$1"
;;
reload )
reload
;;
esac