41 lines
899 B
Bash
Executable File
41 lines
899 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# This systemd generator creates dependency symlinks that make all OpenVPN
|
|
# tunnels listed in /etc/default/openvpn's AUTOSTART be started/stopped/reloaded
|
|
# when openvpn.service is started/stopped/reloaded.
|
|
|
|
set -eu
|
|
|
|
GENDIR="$1"
|
|
WANTDIR="$1/openvpn.service.wants"
|
|
SERVICEFILE="/lib/systemd/system/openvpn@.service"
|
|
AUTOSTART="all"
|
|
CONFIG_DIR=/etc/openvpn
|
|
|
|
mkdir -p "$WANTDIR"
|
|
|
|
if test -e /etc/default/openvpn ; then
|
|
. /etc/default/openvpn
|
|
fi
|
|
|
|
# No VPNs automatically started
|
|
if test "x$AUTOSTART" = "xnone" ; then
|
|
exit 0
|
|
fi
|
|
|
|
if test "x$AUTOSTART" = "xall" -o -z "$AUTOSTART" ; then
|
|
for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
|
|
NAME=${CONFIG%%.conf}
|
|
ln -s "$SERVICEFILE" "$WANTDIR/openvpn@$NAME.service"
|
|
done
|
|
else
|
|
for NAME in $AUTOSTART ; do
|
|
if test -e $CONFIG_DIR/$NAME.conf ; then
|
|
ln -s "$SERVICEFILE" "$WANTDIR/openvpn@$NAME.service"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
exit 0
|
|
|