You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.3 KiB

{% 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 :