diff options
author | Mike Mason <ms13sp@gmail.com> | 2007-12-13 22:26:09 +0000 |
---|---|---|
committer | Mike Mason <ms13sp@gmail.com> | 2007-12-13 22:26:09 +0000 |
commit | cbd2850823424a1126955725de53451101681d44 (patch) | |
tree | 256183f69795c7123d827124b5e19479dd4e81a8 | |
parent | 0188f5043f900f64d775d7a8b67ec10702ffe9db (diff) | |
download | acf-alpine-baselayout-cbd2850823424a1126955725de53451101681d44.tar.bz2 acf-alpine-baselayout-cbd2850823424a1126955725de53451101681d44.tar.xz |
Added an md5sum hash function to fs.lua. Cron-model and cron-controller added just to grab and edit the crontab file.
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@424 ab2d0c66-481e-0410-8bed-d214d4d58bed
-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 + + + + |