61 lines
1.3 KiB
Bash
61 lines
1.3 KiB
Bash
#!/bin/sh
|
|
# expected to be run with a required='__wireguard/ifname'
|
|
|
|
os="$(cat "${__global:?}"/explorer/os)"
|
|
|
|
case "$os" in
|
|
alpine)
|
|
:
|
|
;;
|
|
*)
|
|
echo "This type has no implementation for $os. Aborting." >&2;
|
|
exit 1;
|
|
esac
|
|
|
|
iface="$(cat "${__object:?}/parameter/iface")"
|
|
|
|
PKEY="$(cat "${__object:?}/parameter/public-key")"
|
|
export PKEY
|
|
|
|
ALLOWED_IPS=
|
|
if [ -f "${__object:?}/parameter/allowed-ip" ];
|
|
then
|
|
ALLOWED_IPS="$(cat "${__object:?}/parameter/allowed-ip")"
|
|
fi
|
|
export ALLOWED_IPS
|
|
|
|
ENDPOINT=
|
|
if [ -f "${__object:?}/parameter/endpoint" ];
|
|
then
|
|
ENDPOINT="$(cat "${__object:?}/parameter/endpoint")"
|
|
fi
|
|
export ENDPOINT
|
|
|
|
PERSISTENT_KA=
|
|
if [ -f "${__object:?}/parameter/persistent-keepalive" ];
|
|
then
|
|
PERSISTENT_KA="$(cat "${__object:?}/parameter/persistent-keepalive")"
|
|
fi
|
|
export PERSISTENT_KA
|
|
|
|
state=present
|
|
if [ -f "${__object:?}/parameter/state" ];
|
|
then
|
|
state="$(cat "${__object:?}/parameter/state")"
|
|
fi
|
|
|
|
presharedkey=
|
|
if [ -f "${__object:?}/parameter/preshared-key" ];
|
|
then
|
|
presharedkey="$(cat "${__object:?}/parameter/preshared-key")"
|
|
fi
|
|
|
|
|
|
mkdir -p "${__object:?}/files"
|
|
"${__type:?}/files/wg-peer.sh" "$presharedkey" > "${__object:?}/files/wg-peer"
|
|
|
|
required="__file/etc/wireguard/$iface.conf" \
|
|
__block "${__object_id:?}" --file "/etc/wireguard/$iface.conf" \
|
|
--text - <"${__object:?}/files/wg-peer" \
|
|
--state "$state"
|