summaryrefslogtreecommitdiff
path: root/net/amnezia-tools/files/amnezia.in
diff options
context:
space:
mode:
Diffstat (limited to 'net/amnezia-tools/files/amnezia.in')
-rw-r--r--net/amnezia-tools/files/amnezia.in82
1 files changed, 82 insertions, 0 deletions
diff --git a/net/amnezia-tools/files/amnezia.in b/net/amnezia-tools/files/amnezia.in
new file mode 100644
index 000000000000..98010c013bdb
--- /dev/null
+++ b/net/amnezia-tools/files/amnezia.in
@@ -0,0 +1,82 @@
+#!/bin/sh
+
+# PROVIDE: amnezia
+# REQUIRE: NETWORKING
+# KEYWORD: shutdown
+#
+# amnezia_enable (bool): Set to "YES" to enable amnezia.
+# (default: "NO")
+#
+# amnezia_interfaces (str): List of interfaces to bring up/down
+# on start/stop. (eg: "amn0 amn1")
+# (default: "")
+# amnezia_env (str): Environment variables for the userspace
+# implementation. (eg: "LOG_LEVEL=debug")
+#
+# amnezia_kmod (str): Kernel module to load.
+# (default: "if_amn", "" - no module)
+#
+# amnezia_confdirs (str): Directory to store the configuration files.
+# (default: "%%ETCDIR%%")
+
+. /etc/rc.subr
+
+name=amnezia
+rcvar=amnezia_enable
+extra_commands="reload status"
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+reload_cmd="${name}_reload"
+status_cmd="${name}_status"
+
+amnezia_start()
+{
+ kmod=${amnezia_kmod:-if_amn}
+ ${amnezia_env:+eval export $amnezia_env}
+ [ -n "${kmod}" ] && kldstat -q -n ${kmod} || kldload -n ${kmod}
+
+ for interface in ${amnezia_interfaces}; do
+ %%PREFIX%%/bin/awg-quick up ${interface}
+ done
+}
+
+amnezia_stop()
+{
+ for interface in ${amnezia_interfaces}; do
+ %%PREFIX%%/bin/awg-quick down ${interface}
+ done
+}
+
+amnezia_reload()
+{
+ ${amnezia_env:+eval export $amnezia_env}
+
+ for interface in ${amnezia_interfaces}; do
+ %%PREFIX%%/bin/awg-quick reload ${interface}
+ done
+}
+
+amnezia_status()
+{
+ ${amnezia_env:+eval export $amnezia_env}
+ amnezia_status="0"
+
+ for interface in ${amnezia_interfaces}; do
+ %%PREFIX%%/bin/awg show ${interface} || amnezia_status="1"
+ done
+
+ return ${amnezia_status}
+}
+
+load_rc_config $name
+
+: ${amnezia_enable="NO"}
+: ${amnezia_interfaces=""}
+: ${amnezia_env=""}
+: ${amnezia_kmod="if_amn"}
+: ${amnezia_confdirs="%%ETCDIR%%"}
+
+${amnezia_confdirs:+eval export AWG_QUICK_CONFIG_SEARCH_PATHS="$amnezia_confdirs"}
+
+run_rc_command "$1"