summaryrefslogtreecommitdiffstats
path: root/lbu-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lbu-model.lua')
-rw-r--r--lbu-model.lua38
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()