lede-packages-rs

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

nbd-server.init (2386B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2015 OpenWrt.org
      3 
      4 START=60
      5 STOP=40
      6 USE_PROCD=1
      7 
      8 PROG=/usr/bin/nbd-server
      9 CONFIGFILE="/var/etc/nbd-server.conf"
     10 
     11 
     12 append_plain() {
     13 	echo "$1" >> $CONFIGFILE
     14 }
     15 
     16 append_val_str() {
     17 	local resultname="$1"
     18 	local cfg="$2"
     19 	local uciname="${3:-$1}"
     20 	local value=
     21 
     22 	config_get value "$cfg" "$uciname"
     23 
     24 	if [ -z "$value" ]; then
     25 		return
     26 	fi
     27 	append_plain "$resultname = $value"
     28 }
     29 
     30 append_val_bool() {
     31 	local resultname="$1"
     32 	local cfg="$2"
     33 	local uciname="${3:-$1}"
     34 	local value=
     35 
     36 	config_get_bool value "$cfg" "$uciname"
     37 	if [ -z "$value" ]; then
     38 		return
     39 	fi
     40 
     41 	[ $value == 1 ] && value="true" || value="false"
     42 	append_plain "$resultname = $value"
     43 }
     44 
     45 config_handle_generic() {
     46 	local cfg="$1"
     47 
     48 	append_plain "[generic]"
     49 	append_val_str user "$cfg"
     50 	append_val_str group "$cfg"
     51 	append_val_str port "$cfg"
     52 	append_val_str listenaddr "$cfg"
     53 	append_val_bool allowlist "$cfg"
     54 	append_val_str includedir "$cfg"
     55 	append_val_bool oldstyle "$cfg"
     56 
     57 	config_get_bool SERVICE_ENABLED "$cfg" enabled 0
     58 }
     59 
     60 config_handle_share() {
     61 	local cfg="$1"
     62 
     63 	append_plain
     64 	append_plain "[$cfg]"
     65 	append_val_str exportname "$cfg" filename
     66 	append_val_str timeout "$cfg"
     67 	append_val_str maxconnections "$cfg"
     68 	append_val_str authfile "$cfg"
     69 	append_val_str filesize "$cfg"
     70 	append_val_str readonly "$cfg"
     71 	append_val_str multifile "$cfg"
     72 	append_val_str copyonwrite "$cfg"
     73 	append_val_bool sparse_cow "$cfg"
     74 	append_val_bool flush "$cfg"
     75 	append_val_bool fua "$cfg"
     76 	append_val_bool rotational "$cfg"
     77 	append_val_bool sync "$cfg"
     78 	append_val_bool discard "$cfg"
     79 	append_val_str prerun "$cfg"
     80 	append_val_str postrun "$cfg"
     81 	append_val_str virtstyle "$cfg"
     82 	append_val_str port "$cfg" oldstyle_port
     83 	append_val_str listenaddr "$cfg" oldstyle_listenaddr
     84 }
     85 
     86 start_instance() {
     87 	local cfg="$1"
     88 	local enabled
     89 
     90 	config_get_bool enabled "$cfg" 'enabled' '0'
     91 	[ "$enabled" = 0 ] && return 1
     92 
     93 	procd_open_instance
     94 	procd_set_param command $PROG --config-file=$CONFIGFILE
     95 	procd_set_param file $CONFIGFILE
     96 	procd_close_instance
     97 }
     98 
     99 start_service() {
    100 	config_load nbd-server
    101 
    102 	mkdir -p $(dirname $CONFIGFILE)
    103 	echo "# auto-generated config file from /etc/config/nbd-server" > $CONFIGFILE
    104 	config_foreach config_handle_generic nbd-server
    105 	config_foreach config_handle_share share
    106 
    107 	config_foreach start_instance nbd-server
    108 }
    109 
    110 service_triggers() {
    111 	procd_add_reload_trigger "nbd-server"
    112 }