#!/bin/bash OVPN_SERVICE="openvpn@home.service" OVPN_CONF="/etc/openvpn/home.conf" WG_NAME="wg-home" WG_SERVICE="wg-quick@$WG_NAME" WG_CONF="/etc/wireguard/wg-home.conf" function run() { echo "# $*" eval sudo "$@" } function ovpn_ctl() { if (( $# < 1 )); then run systemctl status $OVPN_SERVICE else run systemctl $1 $OVPN_SERVICE fi } function wg_ctl() { local op=${1:-status} case "$op" in info | -h | --help) echo "WireGuard device name: $WG_NAME" echo "Systemd service name: $WG_SERVICE" echo "Configuration: $WG_CONF" echo "Commands: info, show, down, up, down-up, stop, start, restart, status" ;; show) run wg show all ;; up) run wg-quick up $WG_NAME ;; down) run wg-quick down $WG_NAME ;; down-up) run wg-quick down $WG_NAME run wg-quick up $WG_NAME ;; *) run systemctl $op $WG_SERVICE ;; esac } wg_ctl "$@"