Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Build Status Coverage Status License

LuaConfig

Lua module providing advance configuration functionality.

Install

luarocks install luaconfig

Usage

local conf = require("luaconfig")()

-- set/get simple value
conf:set("dir", "/root")
print(conf:get("dir")) -- /root

-- setting a value with reference to another config
conf:set("file", "$(dir)/file")
print(conf:get("file")) -- /root/file

-- setting multiple configurations, convenient when loading from file
conf:set([[
host.os=linux
-- lua style comments and empty lines are allowed

host.arch=x86_64
host.linux.x86_64.cflags=-m64
gcc.cflags=$(host.$(host.os).\ -- multiline
    $(host.arch).cflags) -- reference contains a reference
]])

print(conf:get("gcc.cflags")) -- -m64

Custom storage implementation

local redis = require("redis")
local config = require("luaconfig")

local rcli = redis.connect({
    host = '127.0.0.1',
    port = 6379,
})

local conf = config({
    _set = function(self, name, value)
        rcli:set(name, value)
    end,
    _get = function(self, name)
        return rcli:get(name)
    end,
    _keys = function(self)
        return rcli:keys("*")
    end
})

conf:set([[
host.os=linux
-- lua style comments and empty lines are allowed

host.arch=x86_64
host.linux.x86_64.cflags=-m64
gcc.cflags=$(host.$(host.os).\ -- multiline
    $(host.arch).cflags) -- reference contains a reference
]])

print(conf:get("gcc.cflags")) -- -m64
print(rcli:get("gcc.cflags")) -- $(host.$(host.os).$(host.arch).cflags)

About

Lua module providing advance configuration functionality.

Topics

Resources

Packages

No packages published