mirror of
https://git.freebsd.org/ports.git
synced 2025-05-03 12:06:39 -04:00
60 lines
1.4 KiB
Bash
60 lines
1.4 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: zerotier
|
|
# REQUIRE: FILESYSTEMS devfs
|
|
# BEFORE: pf ipfw
|
|
# KEYWORD: shutdown
|
|
#
|
|
# Add these lines to /etc/rc.conf.local or /etc/rc.conf
|
|
# to enable this service:
|
|
#
|
|
# zerotier_enable (bool): Set to NO by default.
|
|
# Set it to YES to enable zerotier.
|
|
# zerotier_wait_for_net (bool): Set to NO by default. Use for DHCP interfaces only
|
|
# Set it to YES to require zerotier to wait until online
|
|
|
|
. /etc/rc.subr
|
|
|
|
name=zerotier
|
|
rcvar=zerotier_enable
|
|
desc="peer-to-peer software-defined networking"
|
|
|
|
load_rc_config $name
|
|
|
|
: ${zerotier_enable:=NO}
|
|
: ${zerotier_wait_for_net:=NO}
|
|
|
|
required_modules=%%ZEROTIER_IF_TAP%%
|
|
|
|
pidfile="/var/run/${name}.pid"
|
|
start_precmd="install -o root /dev/null ${pidfile}"
|
|
|
|
command=/usr/sbin/daemon
|
|
command_args=" \
|
|
-c \
|
|
-t ${name} \
|
|
-r \
|
|
-P ${pidfile} \
|
|
%%ZEROTIER_SYSLOG%% \
|
|
%%PREFIX%%/sbin/${name}-one /var/db/${name}-one/"
|
|
|
|
start_postcmd=start_postcmd
|
|
|
|
start_postcmd()
|
|
{ if checkyesno zerotier_wait_for_net; then
|
|
zerotier_count=5
|
|
until %%PREFIX%%/bin/zerotier-cli status |egrep -o ONLINE\$; do
|
|
warn ${name} is waiting for ONLINE status
|
|
sleep 2
|
|
zerotier_count=$((zerotier_count-1))
|
|
test $zerotier_count -le 0 && break
|
|
done
|
|
if test $zerotier_count -le 0; then
|
|
warn ${name} still not ONLINE, stopped blocking
|
|
else
|
|
warn ${name} is ONLINE
|
|
fi
|
|
fi
|
|
}
|
|
|
|
run_rc_command "$1"
|