No Description

nbd-server.init 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2012 OpenWrt.org
  3. START=60
  4. SERVICE_USE_PID=1
  5. CONFIGFILE="/var/etc/nbd-server.conf"
  6. append_plain() {
  7. echo "$1" >> $CONFIGFILE
  8. }
  9. append_val_str() {
  10. local resultname="$1"
  11. local cfg="$2"
  12. local uciname="${3:-$1}"
  13. local value=
  14. config_get value "$cfg" "$uciname"
  15. if [ -z "$value" ]; then
  16. return
  17. fi
  18. append_plain "$resultname = $value"
  19. }
  20. append_val_bool() {
  21. local resultname="$1"
  22. local cfg="$2"
  23. local uciname="${3:-$1}"
  24. local value=
  25. config_get_bool value "$cfg" "$uciname"
  26. if [ -z "$value" ]; then
  27. return
  28. fi
  29. [ $value == 1 ] && value="true" || value="false"
  30. append_plain "$resultname = $value"
  31. }
  32. config_handle_generic() {
  33. local cfg="$1"
  34. append_plain "[generic]"
  35. append_val_str user "$cfg"
  36. append_val_str group "$cfg"
  37. append_val_str port "$cfg"
  38. append_val_str listenaddr "$cfg"
  39. append_val_bool allowlist "$cfg"
  40. append_val_str includedir "$cfg"
  41. append_val_bool oldstyle "$cfg"
  42. config_get_bool SERVICE_ENABLED "$cfg" enabled 0
  43. }
  44. config_handle_share() {
  45. local cfg="$1"
  46. append_plain
  47. append_plain "[$cfg]"
  48. append_val_str exportname "$cfg" filename
  49. append_val_str timeout "$cfg"
  50. append_val_str maxconnections "$cfg"
  51. append_val_str authfile "$cfg"
  52. append_val_str filesize "$cfg"
  53. append_val_str readonly "$cfg"
  54. append_val_str multifile "$cfg"
  55. append_val_str copyonwrite "$cfg"
  56. append_val_bool sparse_cow "$cfg"
  57. append_val_bool flush "$cfg"
  58. append_val_bool fua "$cfg"
  59. append_val_bool rotational "$cfg"
  60. append_val_bool sync "$cfg"
  61. append_val_bool discard "$cfg"
  62. append_val_str prerun "$cfg"
  63. append_val_str postrun "$cfg"
  64. append_val_str virtstyle "$cfg"
  65. append_val_str port "$cfg" oldstyle_port
  66. append_val_str listenaddr "$cfg" oldstyle_listenaddr
  67. }
  68. config_read() {
  69. mkdir -p $(dirname $CONFIGFILE)
  70. echo -n > $CONFIGFILE
  71. config_load nbd-server
  72. config_foreach config_handle_generic nbd-server
  73. config_foreach config_handle_share share
  74. }
  75. start() {
  76. config_read
  77. if [ "$SERVICE_ENABLED" = "1" ]; then
  78. service_start /usr/bin/nbd-server \
  79. --pid-file /var/run/nbd-server.pid \
  80. --config-file=$CONFIGFILE
  81. fi
  82. }
  83. stop() {
  84. service_stop /usr/bin/nbd-server
  85. }