|
|
@ -0,0 +1,62 @@ |
|
|
|
#!/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 |
|
|
|
} |