aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/samba36/files/samba.hotplug
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/samba36/files/samba.hotplug')
-rw-r--r--package/network/services/samba36/files/samba.hotplug56
1 files changed, 56 insertions, 0 deletions
diff --git a/package/network/services/samba36/files/samba.hotplug b/package/network/services/samba36/files/samba.hotplug
new file mode 100644
index 0000000000..e1ae64e655
--- /dev/null
+++ b/package/network/services/samba36/files/samba.hotplug
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+. /usr/share/libubox/jshn.sh
+
+device_get_vars() {
+ json_init
+ json_load "$(ubus call block info)"
+
+ json_select devices
+
+ json_get_keys keys
+ for key in $keys
+ do
+ json_select $key
+
+ json_get_var device device
+ [ "$device" = "$1" ] && {
+ shift
+ json_get_vars $@
+ json_select ..
+ break
+ }
+
+ json_select ..
+ done
+
+ json_select ..
+}
+
+[ -f /var/run/config/samba ] || {
+ mkdir -p /var/run/config && touch /var/run/config/samba
+}
+
+[ "$ACTION" = "add" ] && {
+ device_get_vars $DEVICE label mount
+ [ -n "$mount" ] && {
+ uci -c /var/run/config batch <<-EOF
+ set samba.$DEVICE="sambashare"
+ set samba.$DEVICE.name="$label"
+ set samba.$DEVICE.path="$mount"
+ set samba.$DEVICE.browseable="yes"
+ set samba.$DEVICE.read_only="yes"
+ set samba.$DEVICE.guest_ok="yes"
+ commit samba
+ EOF
+ /etc/init.d/samba reload
+ }
+}
+
+[ "$ACTION" = "remove" ] && {
+ uci -c /var/run/config batch <<-EOF
+ delete samba.$DEVICE
+ commit samba
+ EOF
+ /etc/init.d/samba reload
+}