#!/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 }