diff options
Diffstat (limited to 'lbu-model.lua')
-rw-r--r-- | lbu-model.lua | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lbu-model.lua b/lbu-model.lua new file mode 100644 index 0000000..276ef85 --- /dev/null +++ b/lbu-model.lua @@ -0,0 +1,35 @@ +module (..., package.seeall) + +require "fs" + +local function getLbuStatus() + local ret = {} + local f = io.popen("/sbin/lbu status -v", "r") + if not f then return ret end + for line in f:lines() do + local status, name = string.match(line, "^(%S+)%s+(.+)$") + if status and name then + ret[string.gsub('/' .. name, "/+", "/")] = status + end + end + f:close() + return ret +end + +function list(self) + local ret = {} + local lbuStatus = getLbuStatus() + for k,v in pairs(lbuStatus) do + ret[#ret + 1] = { name=k, status=v } + end + return ret +end + +function commit(self) + local f = io.popen("/sbin/lbu commit", 'r') + if not f then return false, "cannot run lbu" end + local ret = f:read("*a") + f:close() + return true, ret +end + |