- #!/bin/sh
-
- . /usr/share/libubox/jshn.sh
-
- device_get_vars() {
- json_init
- json_load "$(ubus call block info)"
-
- json_select devices || return 1
-
- 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 ..
- json_select ..
- return 0
- }
-
- json_select ..
- done
-
- json_select ..
-
- return 2
- }
-
- [ -f /var/run/config/ksmbd ] || {
- mkdir -p /var/run/config && touch /var/run/config/ksmbd
- }
-
- [ "$ACTION" = "add" ] && {
- device_get_vars $DEVICE label mount || {
- logger -t ksmbd-hotplug "Failed to get $DEVICE info"
- exit 1
- }
- [ -n "$mount" ] && {
- uci -c /var/run/config batch <<-EOF
- set ksmbd.$DEVICE="share"
- set ksmbd.$DEVICE.name="${label:-$DEVICE}"
- set ksmbd.$DEVICE.path="$mount"
- set ksmbd.$DEVICE.browseable="yes"
- set ksmbd.$DEVICE.read_only="yes"
- set ksmbd.$DEVICE.guest_ok="yes"
- commit ksmbd
- EOF
- /etc/init.d/ksmbd reload
- }
- }
-
- [ "$ACTION" = "remove" ] && {
- uci -c /var/run/config batch <<-EOF
- delete ksmbd.$DEVICE
- commit ksmbd
- EOF
- /etc/init.d/ksmbd reload
- }
|