luci-mod-admin-full: support configuring usbport LED triggers
[project/luci.git] / modules / luci-mod-admin-full / luasrc / model / cbi / admin_system / leds.lua
index 8d9bcb1..4b6f397 100644 (file)
@@ -109,6 +109,13 @@ function usbdev.remove(self, section)
        end
 end
 
+
+usbport = s:option(MultiValue, "ports", translate("USB Ports"))
+usbport:depends("trigger", "usbport")
+usbport.rmempty = true
+usbport.widget = "checkbox"
+usbport.size = 1
+
 for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*/manufacturer") do
        local id = p:match("%d+-%d+")
        local mf = nixio.fs.readfile("/sys/bus/usb/devices/" .. id .. "/manufacturer") or "?"
@@ -116,4 +123,12 @@ for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*/manufacturer") do
        usbdev:value(id, "%s (%s - %s)" %{ id, mf, pr })
 end
 
+for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*") do
+       local bus, port = p:match("(%d+)-(%d+)")
+       if bus and port then
+               usbport:value("usb%u-port%u" %{ tonumber(bus), tonumber(port) },
+                             "Hub %u, Port %u" %{ tonumber(bus), tonumber(port) })
+       end
+end
+
 return m