lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

zerotier.init (1408B)


      1 #!/bin/sh /etc/rc.common
      2 
      3 START=90
      4 
      5 USE_PROCD=1
      6 
      7 LIST_SEP="
      8 "
      9 ZT_COMMAND=/usr/bin/zerotier-one
     10 
     11 section_enabled() {
     12 	config_get_bool enabled "$1" 'enabled' 0
     13 	[ $enabled -gt 0 ]
     14 }
     15 
     16 start_instance() {
     17 	local cfg="$1"
     18 	local port secret interface
     19 	local ARGS=""
     20 
     21 	section_enabled "$cfg" || return 1
     22 
     23 	mkdir -p /var/lib/zerotier-one/networks.d/
     24 
     25 	config_get_bool port $cfg 'port'
     26 	config_get secret $cfg 'secret'
     27 	config_get interface $cfg 'interface'
     28 
     29 	if [ -n "$port" ]; then
     30 		ARGS="$ARGS -p$port"
     31 	fi
     32 
     33 	if [ "$secret" = "generate" ]; then
     34 		echo "Generate secret - please wait..."
     35 		local tmp="/tmp/zt.$cfg.secret"
     36 		zerotier-idtool generate "$tmp" > /dev/null
     37 		secret="$(cat $tmp)"
     38 		rm "$tmp"
     39 
     40 		uci set zerotier.$cfg.secret="$secret"
     41 		uci commit zerotier
     42 	fi
     43 
     44 	if [ -n "$secret" ]; then
     45 		echo "$secret" > /var/lib/zerotier-one/identity.secret
     46 		#make sure there is not previous dentity.public
     47 		rm -f /var/lib/zerotier-one/identity.public
     48 	fi
     49 
     50 	add_join() {
     51 		#an (empty) config file will cause ZT to join a network
     52 		touch /var/lib/zerotier-one/networks.d/$1.conf
     53 	}
     54 
     55 	config_list_foreach $cfg 'join' add_join
     56 
     57 	procd_open_instance
     58 	procd_add_reload_interface_trigger "$interface"
     59 	procd_set_param command $ZT_COMMAND $ARGS
     60 	procd_close_instance
     61 }
     62 
     63 service_triggers() {
     64        procd_add_reload_trigger zerotier
     65 }
     66 
     67 start_service() {
     68 	config_load 'zerotier'
     69 	config_foreach start_instance 'zerotier'
     70 }