summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Mason <ms13sp@gmail.com>2007-12-13 22:26:09 +0000
committerMike Mason <ms13sp@gmail.com>2007-12-13 22:26:09 +0000
commitcbd2850823424a1126955725de53451101681d44 (patch)
tree256183f69795c7123d827124b5e19479dd4e81a8
parent0188f5043f900f64d775d7a8b67ec10702ffe9db (diff)
downloadacf-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.lua34
-rw-r--r--cron-model.lua29
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
+
+
+
+