mirror of
https://github.com/novatiq/packages.git
synced 2026-04-30 07:28:39 +01:00
nebula: initial commit
Signed-off-by: Stan Grishin <stangri@melmac.net> initial commit
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright 2021 Stan Grishin (stangri@melmac.net)
|
||||
# shellcheck disable=SC2039
|
||||
PKG_VERSION='dev-test'
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
START=80
|
||||
# shellcheck disable=SC2034
|
||||
USE_PROCD=1
|
||||
|
||||
if type extra_command 1>/dev/null 2>&1; then
|
||||
extra_command 'version' 'Show version information'
|
||||
else
|
||||
# shellcheck disable=SC2034
|
||||
EXTRA_COMMANDS='version'
|
||||
fi
|
||||
|
||||
readonly PROG=/usr/sbin/nebula
|
||||
|
||||
version() { echo "Version: $PKG_VERSION"; }
|
||||
|
||||
start_instance() {
|
||||
local cfg="$1" port name="${1##*/}"
|
||||
port="$(grep -A2 "^listen:" "$cfg" | grep "port: " | awk '{print $2}')"
|
||||
procd_open_instance
|
||||
procd_set_param command ${PROG} -config "${cfg}"
|
||||
procd_set_param stderr 1
|
||||
procd_set_param stdout 1
|
||||
procd_set_param respawn
|
||||
procd_open_data
|
||||
json_add_array firewall
|
||||
json_add_object ''
|
||||
json_add_string type 'rule'
|
||||
json_add_string name "Allow-$name"
|
||||
json_add_string src 'wan'
|
||||
json_add_string dest_port "$port"
|
||||
json_add_string proto 'udp'
|
||||
json_add_string target 'ACCEPT'
|
||||
json_close_object
|
||||
json_close_array
|
||||
procd_close_data
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local f
|
||||
for f in /etc/nebula/*.yml; do
|
||||
[ -s "$f" ] && start_instance "$f"
|
||||
done
|
||||
}
|
||||
|
||||
service_started() { procd_set_config_changed firewall; }
|
||||
service_stopped() { procd_set_config_changed firewall; }
|
||||
Reference in New Issue
Block a user