diff --git a/.luacheckrc b/.luacheckrc index b308748c..64f7b23e 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -23,6 +23,7 @@ files["package/**/check_site.lua"] = { read_globals = { "alternatives", "extend", + "in_site_or_domain", "in_domain", "in_site", "need", diff --git a/package/gluon-autoupdater/check_site.lua b/package/gluon-autoupdater/check_site.lua index eaabf285..fa29b3ff 100644 --- a/package/gluon-autoupdater/check_site.lua +++ b/package/gluon-autoupdater/check_site.lua @@ -1,10 +1,10 @@ need_string(in_site({'autoupdater', 'branch'}), false) -need_table({'autoupdater', 'branches'}, function(branch) +need_table(in_site_or_domain({'autoupdater', 'branches'}), function(branch) need_alphanumeric_key(branch) need_string(in_site(extend(branch, {'name'}))) - need_string_array_match(extend(branch, {'mirrors'}), '^http://') + need_string_array_match(in_site_or_domain(extend(branch, {'mirrors'})), '^http://') need_number(in_site(extend(branch, {'good_signatures'}))) need_string_array_match(in_site(extend(branch, {'pubkeys'})), '^%x+$') obsolete(in_site(extend(branch, {'probability'})), 'Use GLUON_PRIORITY in site.mk instead.') diff --git a/package/gluon-client-bridge/check_site.lua b/package/gluon-client-bridge/check_site.lua index b077f87b..1cfef192 100644 --- a/package/gluon-client-bridge/check_site.lua +++ b/package/gluon-client-bridge/check_site.lua @@ -8,9 +8,9 @@ need_string_match(in_domain({'next_node', 'ip6'}), '^[%x:]+$', false) for _, config in ipairs({'wifi24', 'wifi5'}) do - if need_table({config, 'ap'}, nil, false) then - need_boolean({config, 'ap', 'disabled'}, false) - if need_boolean({config, 'ap', 'owe_transition_mode'}, false) then + if need_table(in_site_or_domain({config, 'ap'}), nil, false) then + need_boolean(in_site_or_domain({config, 'ap', 'disabled'}), false) + if need_boolean(in_site_or_domain({config, 'ap', 'owe_transition_mode'}), false) then need_string_match(in_domain({config, 'ap', 'ssid'}), '^' .. ('.?'):rep(32) .. '$') need_string_match(in_domain({config, 'ap', 'owe_ssid'}), '^' .. ('.?'):rep(32) .. '$') else diff --git a/package/gluon-core/check_site.lua b/package/gluon-core/check_site.lua index 3966592d..9eef4916 100644 --- a/package/gluon-core/check_site.lua +++ b/package/gluon-core/check_site.lua @@ -14,9 +14,9 @@ end need_string_match(in_domain({'domain_seed'}), '^' .. ('%x'):rep(64) .. '$') -need_string({'opkg', 'openwrt'}, false) +need_string(in_site_or_domain({'opkg', 'openwrt'}), false) obsolete({'opkg', 'lede'}, 'Use opkg.openwrt instead.') -need_table({'opkg', 'extra'}, function(extra_repo) +need_table(in_site_or_domain({'opkg', 'extra'}), function(extra_repo) need_alphanumeric_key(extra_repo) need_string(extra_repo) end, false) @@ -24,13 +24,13 @@ end, false) need_string(in_site({'hostname_prefix'}), false) need_string(in_site({'timezone'})) -need_string_array({'ntp_servers'}, false) +need_string_array(in_site_or_domain({'ntp_servers'}), false) need_string_match(in_domain({'prefix6'}), '^[%x:]+/64$') local supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000} for _, config in ipairs({'wifi24', 'wifi5'}) do - if need_table({config}, nil, false) then + if need_table(in_site_or_domain({config}), nil, false) then need_string(in_site({'regdom'})) -- regdom is only required when wifi24 or wifi5 is configured need_number({config, 'beacon_interval'}, false) @@ -62,8 +62,8 @@ end need_boolean(in_site({'poe_passthrough'}), false) -if need_table({'dns'}, nil, false) then - need_string_array_match({'dns', 'servers'}, '^[%x:]+$') +if need_table(in_site_or_domain({'dns'}), nil, false) then + need_string_array_match(in_site_or_domain({'dns', 'servers'}), '^[%x:]+$') end need_string_array(in_domain({'next_node', 'name'}), false) diff --git a/package/gluon-core/luasrc/lib/gluon/check-site.lua b/package/gluon-core/luasrc/lib/gluon/check-site.lua index 6861d8cb..e1509045 100644 --- a/package/gluon-core/luasrc/lib/gluon/check-site.lua +++ b/package/gluon-core/luasrc/lib/gluon/check-site.lua @@ -138,6 +138,10 @@ function M.in_domain(path) return path end +function M.in_site_or_domain(path) + return path +end + function M.this_domain() return domain_code end diff --git a/package/gluon-ebtables/check_site.lua b/package/gluon-ebtables/check_site.lua index 68747b78..5b4fd9b6 100644 --- a/package/gluon-ebtables/check_site.lua +++ b/package/gluon-ebtables/check_site.lua @@ -1 +1 @@ -need_boolean({'mesh', 'filter_membership_reports'}, false) +need_boolean(in_site_or_domain({'mesh', 'filter_membership_reports'}), false) diff --git a/package/gluon-logging/check_site.lua b/package/gluon-logging/check_site.lua index 8ee0c032..7d969d17 100644 --- a/package/gluon-logging/check_site.lua +++ b/package/gluon-logging/check_site.lua @@ -1,3 +1,3 @@ -need_string({'syslog', 'ip'}, true) -need_number_range({'syslog', 'port'}, 1, 65535, false) -need_one_of({'syslog', 'proto'}, {'tcp', 'udp'}, false) +need_string(in_site_or_domain({'syslog', 'ip'}), true) +need_number_range(in_site_or_domain({'syslog', 'port'}), 1, 65535, false) +need_one_of(in_site_or_domain({'syslog', 'proto'}), {'tcp', 'udp'}, false) diff --git a/package/gluon-mesh-batman-adv/check_site.lua b/package/gluon-mesh-batman-adv/check_site.lua index c0b6f305..be1f1004 100644 --- a/package/gluon-mesh-batman-adv/check_site.lua +++ b/package/gluon-mesh-batman-adv/check_site.lua @@ -1,5 +1,5 @@ -- mesh/vxlan is required in single domain setups (this_domain() is nil) need_boolean(in_domain({'mesh', 'vxlan'}), not this_domain()) -need_number({'mesh', 'batman_adv', 'gw_sel_class'}, false) -need_one_of({'mesh', 'batman_adv', 'routing_algo'}, {'BATMAN_IV', 'BATMAN_V'}) +need_number(in_site_or_domain({'mesh', 'batman_adv', 'gw_sel_class'}), false) +need_one_of(in_site_or_domain({'mesh', 'batman_adv', 'routing_algo'}), {'BATMAN_IV', 'BATMAN_V'}) diff --git a/package/gluon-mesh-vpn-core/check_site.lua b/package/gluon-mesh-vpn-core/check_site.lua index 04ff3c84..93824c56 100644 --- a/package/gluon-mesh-vpn-core/check_site.lua +++ b/package/gluon-mesh-vpn-core/check_site.lua @@ -1,5 +1,5 @@ need_boolean(in_site({'mesh_vpn', 'enabled'}), false) -need_number({'mesh_vpn', 'mtu'}) +need_number(in_site_or_domain({'mesh_vpn', 'mtu'})) need_boolean(in_site({'mesh_vpn', 'pubkey_privacy'}), false) need_boolean(in_site({'mesh_vpn', 'bandwidth_limit', 'enabled'}), false) diff --git a/package/gluon-mesh-vpn-fastd/check_site.lua b/package/gluon-mesh-vpn-fastd/check_site.lua index 70c0d079..39e05140 100644 --- a/package/gluon-mesh-vpn-fastd/check_site.lua +++ b/package/gluon-mesh-vpn-fastd/check_site.lua @@ -1,5 +1,5 @@ local fastd_methods = {'salsa2012+gmac', 'salsa2012+umac', 'null+salsa2012+gmac', 'null+salsa2012+umac', 'null'} -need_array_of({'mesh_vpn', 'fastd', 'methods'}, fastd_methods) +need_array_of(in_site_or_domain({'mesh_vpn', 'fastd', 'methods'}), fastd_methods) need_boolean(in_site({'mesh_vpn', 'fastd', 'configurable'}), false) need_one_of(in_site({'mesh_vpn', 'fastd', 'syslog_level'}), @@ -20,4 +20,4 @@ local function check_group(k) need_table(extend(k, {'groups'}), check_group, false) end -need_table({'mesh_vpn', 'fastd', 'groups'}, check_group) +need_table(in_site_or_domain({'mesh_vpn', 'fastd', 'groups'}), check_group) diff --git a/package/gluon-mesh-wireless-sae/check_site.lua b/package/gluon-mesh-wireless-sae/check_site.lua index be0f957b..26a0ab08 100644 --- a/package/gluon-mesh-wireless-sae/check_site.lua +++ b/package/gluon-mesh-wireless-sae/check_site.lua @@ -1,2 +1,2 @@ -need_boolean({'wifi', 'mesh', 'sae'}, false) -need_string({'wifi', 'mesh', 'sae_passphrase'}, false) +need_boolean(in_site_or_domain({'wifi', 'mesh', 'sae'}), false) +need_string(in_site_or_domain({'wifi', 'mesh', 'sae_passphrase'}), false) diff --git a/package/gluon-radv-filterd/check_site.lua b/package/gluon-radv-filterd/check_site.lua index fa38475d..afaf64cf 100644 --- a/package/gluon-radv-filterd/check_site.lua +++ b/package/gluon-radv-filterd/check_site.lua @@ -1 +1 @@ -need_number({'radv_filterd', 'threshold'}, false) +need_number(in_site_or_domain({'radv_filterd', 'threshold'}), false)