summaryrefslogtreecommitdiff
path: root/src/luarocks/config.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/luarocks/config.lua')
-rw-r--r--src/luarocks/config.lua36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/luarocks/config.lua b/src/luarocks/config.lua
new file mode 100644
index 0000000..019b388
--- /dev/null
+++ b/src/luarocks/config.lua
@@ -0,0 +1,36 @@
+local config = {}
+
+local persist = require("luarocks.persist")
+
+local cfg_skip = {
+ errorcodes = true,
+ flags = true,
+ platforms = true,
+ root_dir = true,
+ upload_servers = true,
+}
+
+function config.should_skip(k, v)
+ return type(v) == "function" or cfg_skip[k]
+end
+
+local function cleanup(tbl)
+ local copy = {}
+ for k, v in pairs(tbl) do
+ if not config.should_skip(k, v) then
+ copy[k] = v
+ end
+ end
+ return copy
+end
+
+function config.get_config_for_display(cfg)
+ return cleanup(cfg)
+end
+
+function config.to_string(cfg)
+ local cleancfg = config.get_config_for_display(cfg)
+ return persist.save_from_table_to_string(cleancfg)
+end
+
+return config