Diff

prosodyctl @ 12435:1ee72c0013f3 0.12

prosodyctl about: Report version of lua-readline Good to know since it affects how well the shell works
author Kim Alvefur <zash@zash.se>
date Sun, 27 Mar 2022 14:05:56 +0200
parent 12292:7fe5cd8a10e2
child 12452:c475a7802169
line wrap: on
line diff
--- a/prosodyctl	Wed Mar 23 13:38:55 2022 +0000
+++ b/prosodyctl	Sun Mar 27 14:05:56 2022 +0200
@@ -484,6 +484,7 @@
 	local library_versions = {};
 	dependencies.softreq"ssl";
 	dependencies.softreq"DBI";
+	dependencies.softreq"readline";
 	local friendly_names = {
 		DBI = "LuaDBI";
 		lfs = "LuaFileSystem";
@@ -492,17 +493,22 @@
 		socket = "LuaSocket";
 		ssl = "LuaSec";
 	};
+	local alternate_version_fields = {
+		-- These diverge from the module._VERSION convention
+		readline = "Version";
+	}
 	local lunbound = dependencies.softreq"lunbound";
 	local lxp = dependencies.softreq"lxp";
 	local hashes = dependencies.softreq"util.hashes";
 	for name, module in pairs(package.loaded) do
-		if type(module) == "table" and rawget(module, "_VERSION")
+		local version_field = alternate_version_fields[name] or "_VERSION";
+		if type(module) == "table" and rawget(module, version_field)
 			and name ~= "_G" and not name:match("%.") then
 			name = friendly_names[name] or name;
 			if #name > longest_name then
 				longest_name = #name;
 			end
-			local mod_version = module._VERSION;
+			local mod_version = module[version_field];
 			if tostring(mod_version):sub(1, #name+1) == name .. " " then
 				mod_version = mod_version:sub(#name+2);
 			end