Module pl.config
Reads configuration files into a Lua table.
Understands INI files, classic Unix config files, and simple delimited columns of values. See the Guide
# test.config # Read timeout in seconds read.timeout=10 # Write timeout in seconds write.timeout=5 #acceptable ports ports = 1002,1003,1004 -- readconfig.lua local config = require 'config' local t = config.read 'test.config' print(pretty.write(t)) ### output ##### { ports = { 1002, 1003, 1004 }, write_timeout = 5, read_timeout = 10 }
Functions
lines (file) | like io.lines(), but allows for lines to be continued with ‘\’. |
read (file[, cnfg]) | read a configuration file into a table |
Functions
- lines (file)
-
like io.lines(), but allows for lines to be continued with ‘\’.
Parameters:
- file a file-like object (anything where read() returns the next line) or a filename. Defaults to stardard input.
Returns:
- an iterator over the lines, or nil
- error ‘not a file-like object’ or ‘file is nil’
- read (file[, cnfg])
-
read a configuration file into a table
Parameters:
- file either a file-like object or a string, which must be a filename
- cnfg
tab
a configuration table that may contain these fields:
smart
try to deduce what kind of config file we have (default false)variablilize
make names into valid Lua identifiers (default true)convert_numbers
try to convert values into numbers (default true)trim_space
ensure that there is no starting or trailing whitespace with values (default true)trim_quotes
remove quotes from strings (default false)list_delim
delimiter to use when separating columns (default ‘,’)keysep
separator between key and value pairs (default ‘=’)
Returns:
-
a table containing items, or
nil
- error message (same as config.lines