module (..., package.seeall) require "fs" local configfile = "/etc/lbu/lbu.conf" -- ################################################################################ -- LOCAL FUNCTIONS local function get_version () local f,error = io.popen("/sbin/lbu 2>&1") local programversion = f:read("*l") f:close() return programversion end 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 if (string.match(line, "^Include files")) then break end if (string.match(line, "^Exclude files")) then break end 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 -- ################################################################################ -- PUBLIC FUNCTIONS function getstatus () local status = {} local statustxt = nil local lbustatus = list() if (#lbustatus == 0) then statustxt = "OK! (There is no uncommited files)" else statustxt = "WARNING! (Until you commit, you will loose your changes at next reboot/shutdown!)" end status["version"] = get_version() status["status"] = statustxt return status end function list(self) local ret = {} local lbuStatus = getLbuStatus() for k,v in pairs(lbuStatus) do ret[#ret + 1] = { name=k, status=v } end table.sort(ret, function(a,b) return (a.name < b.name) end) return ret end -- ################################################################################ -- OLD FUNCTIONS --[[ 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 --]]