diff options
Diffstat (limited to 'lbu-controller.lua')
-rw-r--r-- | lbu-controller.lua | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/lbu-controller.lua b/lbu-controller.lua index c13bc5c..d8703e9 100644 --- a/lbu-controller.lua +++ b/lbu-controller.lua @@ -19,12 +19,15 @@ end status = function (self) local cmd = self.clientdata.cmd local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller - return ( {status = self.model:getstatus(), + local status, errors = self.model:getstatus() + return ( {status = status, + errors = errors, lbustatus = self.model:list(), url = url, } ) end config = function (self) + local errors = {} local cmdresult if (self.clientdata.cmd_delete_excluded) and (self.clientdata.lbu_excluded) then cmdresult = self.model:lbuincexcl("exclude", self.clientdata.lbu_excluded, "remove") @@ -50,30 +53,46 @@ config = function (self) cmdresult = self.model:lbuincexcl("exclude", self.clientdata.item_add_exclude, "add") end - + -- This needs to be done /after/ the editing of the config (done earlier in this code) + local status,errors = self.model:getstatus() local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller - return ( {status = self.model:getstatus(), + return ( {status = status, cmdresult = cmdresult, + errors = errors, clientdata = self.clientdata, config = self.model:getconfig(), url = url, } ) end function commit(self) - local cmdresult + local cmdresult, cmderror local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller local cmdflag = nil if (self.clientdata.lbucleanmedia) then cmdflag = "-d" else cmdflag = "" end if (self.clientdata.lbusimulate) then - cmdresult = self.model:getsimulate(cmdflag) + cmdresult, cmderror = self.model:getsimulate(cmdflag) end if (self.clientdata.lbucommit) then - cmdresult = self.model:getcommit(cmdflag) + cmdresult, cmderror = self.model:getcommit(cmdflag) + end + + -- If no clientdata then do a dryrun and see if it's going to work else report + if not (cmdresult) then + tmp_cmdresult, cmderror = self.model:getsimulate() + end + + local status, errors = self.model:getstatus() + if (errors.last) then + self.conf.action = "config" + self.conf.type = "redir" + return config(self) end - return ( {status = self.model:getstatus(), + return ( {status = status, + errors = errors, cmdresult = cmdresult, cmdflag = cmdflag, + cmderror = cmderror, clientdata = self.clientdata, url = url, } ) end |