diff options
-rw-r--r-- | cron-controller.lua | 34 | ||||
-rw-r--r-- | cron-model.lua | 29 |
2 files changed, 63 insertions, 0 deletions
diff --git a/cron-controller.lua b/cron-controller.lua new file mode 100644 index 0000000..c02b06c --- /dev/null +++ b/cron-controller.lua @@ -0,0 +1,34 @@ +-- the cron controller + +module (..., package.seeall) + +-- Cause an http redirect to our "read" action +-- We use the self.conf table because it already has prefix,controller,etc +-- The redir code is defined in the application error handler (acf-controller) +local list_redir = function (self) + self.conf.action = "read" + self.conf.type = "redir" + error (self.conf) +end + +mvc={} +mvc.on_load = function(self, parent) + if (self.worker[self.conf.action] == nil ) or ( self.conf.action == "init" ) then + self.worker[self.conf.action] = list_redir(self) + end + + --logit ("cron.mvc.on_load activated") + +end + + +-- Public methods + +read = function (self) + return ({ crontab = self.model:get()} ) +end + + +update = function (self) + return ( {status = self.model:set() }) +end diff --git a/cron-model.lua b/cron-model.lua new file mode 100644 index 0000000..1f39296 --- /dev/null +++ b/cron-model.lua @@ -0,0 +1,29 @@ +module (..., package.seeall) +require "format" +require "fs" + +get = function (self) + f = io.open("/etc/crontabs/root") + crontab = f:read("*a") + + f:close() + return (cfe{value=crontab, name="crontab",type="longtext"}) +end + +set = function(self, cron) + checksum1 = fs.md5sum_file("/etc/crontabs/root") + newcron = format.dostounix(cron) + file.write_file("/etc/crontabs/root", newcron) + checksum2 = fs.md5sum_file("/etc/crontabs/root") + if checksum1 == checksum2 then + status = "Crontab file unchanged." + else + status = "Crontab file changed successfully" + end + + return(cfe{value=status, name="status"}) +end + + + + |