|
|
@ -0,0 +1,108 @@ |
|
|
|
#!/bin/sh /etc/rc.common |
|
|
|
# Copyright (C) 2012 OpenWrt.org |
|
|
|
|
|
|
|
START=60 |
|
|
|
SERVICE_USE_PID=1 |
|
|
|
|
|
|
|
CONFIGFILE="/var/etc/nbd-server.conf" |
|
|
|
|
|
|
|
|
|
|
|
append_plain() { |
|
|
|
echo "$1" >> $CONFIGFILE |
|
|
|
} |
|
|
|
|
|
|
|
append_val_str() { |
|
|
|
local resultname="$1" |
|
|
|
local cfg="$2" |
|
|
|
local uciname="${3:-$1}" |
|
|
|
local value= |
|
|
|
|
|
|
|
config_get value "$cfg" "$uciname" |
|
|
|
|
|
|
|
if [ -z "$value" ]; then |
|
|
|
return |
|
|
|
fi |
|
|
|
append_plain "$resultname = $value" |
|
|
|
} |
|
|
|
|
|
|
|
append_val_bool() { |
|
|
|
local resultname="$1" |
|
|
|
local cfg="$2" |
|
|
|
local uciname="${3:-$1}" |
|
|
|
local value= |
|
|
|
|
|
|
|
config_get_bool value "$cfg" "$uciname" |
|
|
|
if [ -z "$value" ]; then |
|
|
|
return |
|
|
|
fi |
|
|
|
|
|
|
|
[ $value == 1 ] && value="true" || value="false" |
|
|
|
append_plain "$resultname = $value" |
|
|
|
} |
|
|
|
|
|
|
|
config_handle_generic() { |
|
|
|
local cfg="$1" |
|
|
|
|
|
|
|
append_plain "[generic]" |
|
|
|
append_val_str user "$cfg" |
|
|
|
append_val_str group "$cfg" |
|
|
|
append_val_str port "$cfg" |
|
|
|
append_val_str listenaddr "$cfg" |
|
|
|
append_val_bool allowlist "$cfg" |
|
|
|
append_val_str includedir "$cfg" |
|
|
|
append_val_bool oldstyle "$cfg" |
|
|
|
|
|
|
|
config_get_bool SERVICE_ENABLED "$cfg" enabled 0 |
|
|
|
} |
|
|
|
|
|
|
|
config_handle_share() { |
|
|
|
local cfg="$1" |
|
|
|
|
|
|
|
append_plain |
|
|
|
append_plain "[$cfg]" |
|
|
|
append_val_str exportname "$cfg" filename |
|
|
|
append_val_str timeout "$cfg" |
|
|
|
append_val_str maxconnections "$cfg" |
|
|
|
append_val_str authfile "$cfg" |
|
|
|
append_val_str filesize "$cfg" |
|
|
|
append_val_str readonly "$cfg" |
|
|
|
append_val_str multifile "$cfg" |
|
|
|
append_val_str copyonwrite "$cfg" |
|
|
|
append_val_bool sparse_cow "$cfg" |
|
|
|
append_val_bool flush "$cfg" |
|
|
|
append_val_bool fua "$cfg" |
|
|
|
append_val_bool rotational "$cfg" |
|
|
|
append_val_bool sync "$cfg" |
|
|
|
append_val_bool discard "$cfg" |
|
|
|
append_val_str prerun "$cfg" |
|
|
|
append_val_str postrun "$cfg" |
|
|
|
append_val_str virtstyle "$cfg" |
|
|
|
append_val_str port "$cfg" oldstyle_port |
|
|
|
append_val_str listenaddr "$cfg" oldstyle_listenaddr |
|
|
|
} |
|
|
|
|
|
|
|
config_read() { |
|
|
|
|
|
|
|
mkdir -p $(dirname $CONFIGFILE) |
|
|
|
echo -n > $CONFIGFILE |
|
|
|
|
|
|
|
config_load nbd-server |
|
|
|
config_foreach config_handle_generic nbd-server |
|
|
|
config_foreach config_handle_share share |
|
|
|
} |
|
|
|
|
|
|
|
start() { |
|
|
|
config_read |
|
|
|
|
|
|
|
if [ "$SERVICE_ENABLED" = "1" ]; then |
|
|
|
service_start /usr/bin/nbd-server \ |
|
|
|
--pid-file /var/run/nbd-server.pid \ |
|
|
|
--config-file=$CONFIGFILE |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
stop() { |
|
|
|
service_stop /usr/bin/nbd-server |
|
|
|
} |
|
|
|
|
|
|
|
|