File

.luacheckrc @ 11748:88ba05494d17 0.11

makefile: fix prosody.version target POSIX is quite explicit regarding the precedence of AND-OR lists [0]: > The operators "&&" and "||" shall have equal precedence and shall be > evaluated with left associativity. For example, both of the following > commands write solely `bar` to standard output: > false && echo foo || echo bar > true || echo foo && echo bar Given that, `prosody.version` target behaves as ((((((test -f prosody.release && cp ...) || test -f ...) && sed ...) || test -f ...) && hexdump ...) || echo unknown > $@) In the case of release tarballs, `prosody.release` does exist, so the first AND pair is executed. Given that it's successful, then the first `test -f` in the OR pair is ignored, and instead the `sed` in the AND pair is executed. `sed` success, as `.hg_archival.txt` exists, making the second `test -f` in the OR pair ignored, and `hexdump` in the AND pair is executed. Now, given that `.hg` doesn't exist, it fails, so the last `echo` is run, overwriting `prosody.version` with `unknown`. This can be worked around placing `()` around the AND pairs. Decided to use conditionals instead, as I think they better communicate the intention of the block. [0]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_03
author Lucas <lucas@sexy.is>
date Sun, 15 Aug 2021 04:10:36 +0000
parent 9464:eacdafd07217
child 9689:9e2ee40b4a0a
line wrap: on
line source

cache = true
codes = true
ignore = { "411/err", "421/err", "411/ok", "421/ok", "211/_ENV", "431/log", "143/table", "113/unpack" }

max_line_length = 150

read_globals = {
	"prosody",
	"import",
};
files["prosody"] = {
	allow_defined_top = true;
	module = true;
}
files["prosodyctl"] = {
	allow_defined_top = true;
	module = true;
};
files["core/"] = {
	globals = {
		"prosody.hosts.?",
	};
}
files["util/"] = {
	-- Ignore unwrapped license text
	max_comment_line_length = false;
}
files["plugins/"] = {
	module = true;
	allow_defined_top = true;
	read_globals = {
		-- Module instance
		"module.name",
		"module.host",
		"module._log",
		"module.log",
		"module.event_handlers",
		"module.reloading",
		"module.saved_state",
		"module.global",
		"module.path",

		-- Module API
		"module.add_extension",
		"module.add_feature",
		"module.add_identity",
		"module.add_item",
		"module.add_timer",
		"module.broadcast",
		"module.context",
		"module.depends",
		"module.fire_event",
		"module.get_directory",
		"module.get_host",
		"module.get_host_items",
		"module.get_host_type",
		"module.get_name",
		"module.get_option",
		"module.get_option_array",
		"module.get_option_boolean",
		"module.get_option_inherited_set",
		"module.get_option_number",
		"module.get_option_path",
		"module.get_option_scalar",
		"module.get_option_set",
		"module.get_option_string",
		"module.handle_items",
		"module.hook",
		"module.hook_global",
		"module.hook_object_event",
		"module.hook_tag",
		"module.load_resource",
		"module.measure",
		"module.measure_event",
		"module.measure_global_event",
		"module.measure_object_event",
		"module.open_store",
		"module.provides",
		"module.remove_item",
		"module.require",
		"module.send",
		"module.set_global",
		"module.shared",
		"module.unhook",
		"module.unhook_object_event",
		"module.wrap_event",
		"module.wrap_global",
		"module.wrap_object_event",

		-- mod_http API
		"module.http_url",
	};
	globals = {
		-- Methods that can be set on module API
		"module.unload",
		"module.add_host",
		"module.load",
		"module.add_host",
		"module.save",
		"module.restore",
		"module.command",
		"module.environment",
	};
}
files["spec/"] = {
	std = "+busted";
	globals = { "randomize" };
}
files["prosody.cfg.lua"] = {
	ignore = { "131" };
	globals = {
		"Host",
		"host",
		"VirtualHost",
		"Component",
		"component",
		"Include",
		"include",
		"RunScript"
	};
}

if os.getenv("PROSODY_STRICT_LINT") ~= "1" then
	-- These files have not yet been brought up to standard
	-- Do not add more files here, but do help us fix these!
	unused_secondaries = false

	local exclude_files = {
	"doc/net.server.lua";

	"fallbacks/bit.lua";
	"fallbacks/lxp.lua";

	"net/adns.lua";
	"net/cqueues.lua";
	"net/dns.lua";
	"net/server_select.lua";

	"plugins/mod_storage_sql1.lua";

	"spec/core_configmanager_spec.lua";
	"spec/core_moduleapi_spec.lua";
	"spec/net_http_parser_spec.lua";
	"spec/util_events_spec.lua";
	"spec/util_http_spec.lua";
	"spec/util_ip_spec.lua";
	"spec/util_multitable_spec.lua";
	"spec/util_rfc6724_spec.lua";
	"spec/util_throttle_spec.lua";
	"spec/util_xmppstream_spec.lua";

	"tools/ejabberd2prosody.lua";
	"tools/ejabberdsql2prosody.lua";
	"tools/erlparse.lua";
	"tools/jabberd14sql2prosody.lua";
	"tools/migration/migrator.cfg.lua";
	"tools/migration/migrator/jabberd14.lua";
	"tools/migration/migrator/mtools.lua";
	"tools/migration/migrator/prosody_files.lua";
	"tools/migration/migrator/prosody_sql.lua";
	"tools/migration/prosody-migrator.lua";
	"tools/openfire2prosody.lua";
	"tools/xep227toprosody.lua";

	"util/sasl/digest-md5.lua";
	}
	for _, file in ipairs(exclude_files) do
		files[file] = { only = {} }
	end
end