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