summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-mod-admin-full
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-10-31 18:25:23 +0100
committerJo-Philipp Wich <jo@mein.io>2019-11-01 12:03:33 +0100
commit790005cdfa34cd1d0a730361e546d2c50616053f (patch)
tree5faf87445f1ed21ac5f401ab5a8aae977b85f024 /modules/luci-mod-admin-full
parentc72c78bed979f2d85a3c71fe8c7ab26aefe8bae2 (diff)
luci-base: dispatcher.lua: support declarative node dependencies
Introduce two new properties for page nodes to allow for declaratively specifiying system dependencies which is useful to e.g. make certain views depend on specific uci values or the presence of certain files. The recognized properties are: - `uci_depends` - a nested table in one of the following forms: 1) `{ config = { section = { option = "exact_value" } }` 2) `{ config = { section = { option = true } }` 3) `{ config = { section = "exact_type" } }` 4) `{ config = { section = true } }` 5) `{ config = true }` Depending on the declaration, the uci option or section type must either match the given "exact_value" or "exact_type" values or be a non-nil value in case boolean "true" is specified. - `file_depends` - a flat lists of file paths that must be accessible If a path listed in `file_depends` points to a directory, that directory must be not empty, otherwise it suffices if the path exists. Examples: - Only display the node if an /etc/config/wireless file exists with a "config wifi-device radio0" section. node = page(...) node.uci_depends = { wireless = { radio0 = "wifi-device" } } - Only display the node when swconfig is installed. node = page(...) node.file_depends = { "/sbin/swconfig" } Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules/luci-mod-admin-full')
0 files changed, 0 insertions, 0 deletions