diff options
Diffstat (limited to 'lbu-model.lua')
-rw-r--r-- | lbu-model.lua | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/lbu-model.lua b/lbu-model.lua index 30dc9f1..88e4a83 100644 --- a/lbu-model.lua +++ b/lbu-model.lua @@ -3,9 +3,9 @@ module (..., package.seeall) -- Load libraries require("posix") require("modelfunctions") -require("fs") -require("format") -require("validator") +fs = require("acf.fs") +format = require("acf.format") +validator = require("acf.validator") -- Set variables local configfile = "/etc/lbu/lbu.conf" @@ -176,7 +176,9 @@ end local function validatefilecontent (filedetails) local success = true - local config = getconfig(filedetails.value.filecontent.value) + local clientdata = clientdata or self.clientdata or {} + clientdata.configcontents = filedetails.value.filecontent.value + local config = getconfig(clientdata) local errors = {} for name,value in pairs(config.value) do if value.errtxt then @@ -251,11 +253,12 @@ function list() return cfe({ type="structure", value=ret, label="List of changes" }) end -function getconfig (configcontents) +function getconfig (clientdata) + local clientdata = clientdata or {} local config = {} local configopts = {} - if configcontents then - configopts = format.parse_ini_file(configcontents, "") or {} + if clientdata.configcontents then + configopts = format.parse_ini_file(clientdata.configcontents, "") or {} elseif (fs.is_file(configfile)) then configopts = format.parse_ini_file(fs.read_file(configfile) or "", "") or {} end @@ -440,22 +443,27 @@ function getbackupfiles() return cfe({ type="list", value=files, label="Backup archive list"}) end -function selectbackupfile(selectfile) - local cmdresult = cfe({ value="Failed to revert to backup", errtxt="Backup not found", label="Revert Backup result"}) +function get_selectbackup(clientdata) + local result = {} + result.backup = cfe({ value=clientdata.backup or "", label="Backup" }) + return cfe({ type="group", value=result, label="Revert to Backup" }) +end + +function selectbackupfile(backuprequest) local files = getbackupfiles() for i,file in ipairs(files.value) do - if file == selectfile then + if file == backuprequest.value.backup.value then local f = io.popen("PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin lbu revert "..file.." 2>&1", "r") - cmdresult.errtxt = f:read("*a") - if "" == cmdresult.errtxt then - cmdresult.errtxt = nil - cmdresult.value = "Reverted to backup "..file + backuprequest.errtxt = f:read("*a") + if "" == backuprequest.errtxt then + backuprequest.errtxt = nil + backuprequest.descr = "Reverted to backup "..file end f:close() break end end - return cmdresult + return backuprequest end function getpackage() |