diff options
Diffstat (limited to 'net/nbd/files')
-rw-r--r-- | net/nbd/files/nbd-server.conf | 31 | ||||
-rw-r--r-- | net/nbd/files/nbd-server.init | 108 |
2 files changed, 139 insertions, 0 deletions
diff --git a/net/nbd/files/nbd-server.conf b/net/nbd/files/nbd-server.conf new file mode 100644 index 000000000..ec9a1c3e8 --- /dev/null +++ b/net/nbd/files/nbd-server.conf @@ -0,0 +1,31 @@ +config nbd-server + option enabled 0 +# option port 10809 +# option user root +# option group root +# option allowlist 0 +# option includedir '/etc/nbd-server/conf.d' +# option listenaddr '0.0.0.0' +# option oldstyle 0 + +config share usb_sda1 + option filename '/dev/sda1' +# option authfile '/etc/nbd-server/allow' +# option timeout 0 +# option flush 0 +# option fua 0 +# option rotational 0 +# option sync 0 +# option discard 0 +# option maxconnections 10 +# option filesize 1000000 +# option multifile 0 +# option copyonwrite 0 +# option sparse_cow 1 +# option readonly 0 +# option prerun '/bin/true' +# option postrun '/bin/true' +# option virtstyle 'ipliteral' +# option oldstyle_port 12345 +# option oldstyle_listenaddr '0.0.0.0' + diff --git a/net/nbd/files/nbd-server.init b/net/nbd/files/nbd-server.init new file mode 100644 index 000000000..7759219a8 --- /dev/null +++ b/net/nbd/files/nbd-server.init @@ -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 +} + + |