{% calculate chmod='755' %} #!/sbin/openrc-run # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 VPNDIR=${VPNDIR:-/etc/wireguard} VPN=${SVCNAME#*.} [[ $VPN == wireguard ]] && VPN="wg0" VPNCONF="${VPNDIR}/${VPN}.conf" extra_commands="reload" depend() { need localmount net use dns after bootmisc } checkconfig() { if [ ! -e /sys/module/wireguard ]; then if ! modprobe wireguard ; then eerror "WireGuard support is not available" \ "in this kernel" return 1 fi fi return 0 } start() { ebegin "Starting ${SVCNAME}" checkconfig || return 1 output="$(/usr/bin/wg-quick up ${VPNCONF} 2>&1)" res=$? if [[ $res != 0 ]] then while read line; do eerror " ${line:4}" done <<<$output else while read line; do einfo " ${line:4}" done <<<$output fi eend $res } stop() { ebegin "Stopping ${SVCNAME}" output="$(/usr/bin/wg-quick down ${VPNCONF} 2>&1)" if [[ $? != 0 ]] then while read line; do ewarn " ${line:4}" done <<<$output else while read line; do einfo " ${line:4}" done <<<$output fi eend 0 } reload() { ebegin "Reloading ${SVCNAME}" grep -v Address ${VPNCONF} >${VPNCONF}.clear /usr/bin/wg syncconf ${VPN} ${VPNCONF}.clear rm ${VPNCONF}.clear eend 0 } # vim: set ts=4 :