gentoo-overlay/net-vpn/wireguard/files/wireguard-openrc.sh

45 lines
915 B
Bash

# Copyright (c) 2016 Gentoo Foundation
# All rights reserved. Released under the 2-clause BSD license.
wireguard_depend()
{
program /usr/bin/wg
after interface
before dhcp
}
wireguard_pre_start()
{
[[ $IFACE == wg* ]] || return 0
ip link delete dev "$IFACE" type wireguard 2>/dev/null
ebegin "Creating WireGuard interface $IFACE"
if ! ip link add dev "$IFACE" type wireguard; then
eend $?
return $?
fi
eend 0
ebegin "Configuring WireGuard interface $IFACE"
set -- $(_get_array "wireguard_$IFVAR")
if [[ -f $1 && $# -eq 1 ]]; then
/usr/bin/wg setconf "$IFACE" "$1"
else
eval /usr/bin/wg set "$IFACE" "$@"
fi
if [ $? -eq 0 ]; then
_up
eend 0
return
fi
e=$?
ip link delete dev "$IFACE" type wireguard 2>/dev/null
eend $e
}
wireguard_post_stop()
{
[[ $IFACE == wg* ]] || return 0
ebegin "Removing WireGuard interface $IFACE"
ip link delete dev "$IFACE" type wireguard
eend $?
}