diff options
Diffstat (limited to 'acf/persistence/backends/augeas.lua')
-rw-r--r-- | acf/persistence/backends/augeas.lua | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/acf/persistence/backends/augeas.lua b/acf/persistence/backends/augeas.lua new file mode 100644 index 0000000..34d7df8 --- /dev/null +++ b/acf/persistence/backends/augeas.lua @@ -0,0 +1,26 @@ +--[[ +Copyright (c) 2012 Kaarle Ritvanen +See LICENSE file for license details +--]] + +module(..., package.seeall) + +local pth = require('acf.path') +local map = require('acf.util').map + +backend = require('acf.object').class() + +function backend:init() self.aug = require('augeas').init() end + +function backend:get(path) + path = '/'..pth.join(unpack(path)) + local _, count = self.aug:match(path) + if count == 0 then return end + + local value = self.aug:get(path) + if value ~= nil then return value end + + return map(pth.name, self.aug:match(path..'/*')) +end + +-- TODO implement set function |