# HG changeset patch # User Kim Alvefur # Date 1636713189 -3600 # Node ID 6a241e66eec5fd2ca27e6a3fa46d4cecf13cdc69 # Parent b9aab1962a2b42589a27969106a2ab1315d736db mod_admin_shell: Respect metatables in output serialization Makes it so that returning e.g. util.cache :table() produces useful output, which otherwise would look like empty tables. diff -r b9aab1962a2b -r 6a241e66eec5 plugins/mod_admin_shell.lua --- a/plugins/mod_admin_shell.lua Thu Nov 11 13:27:28 2021 +0000 +++ b/plugins/mod_admin_shell.lua Fri Nov 12 11:33:09 2021 +0100 @@ -286,7 +286,8 @@ -- Anything in def_env will be accessible within the session as a global variable --luacheck: ignore 212/self -local serialize_defaults = module:get_option("console_prettyprint_settings", { fatal = false, unquoted = true, maxdepth = 2}) +local serialize_defaults = module:get_option("console_prettyprint_settings", + { fatal = false; unquoted = true; maxdepth = 2; table_iterator = "pairs" }) def_env.output = {}; function def_env.output:configure(opts) @@ -302,6 +303,11 @@ opts[k] = v; end end + if opts.table_iterator == "pairs" then + opts.table_iterator = pairs; + elseif type(opts.table_iterator) ~= "function" then + opts.table_iterator = nil; -- rawpairs is the default + end self.session.serialize = serialization.new(opts); end