summaryrefslogtreecommitdiffstats
path: root/lbu-model.lua
blob: 276ef856a151d98b4e7b8fcc47175106b715ecd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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