summaryrefslogtreecommitdiffstats
path: root/syslog-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'syslog-model.lua')
-rw-r--r--syslog-model.lua44
1 files changed, 44 insertions, 0 deletions
diff --git a/syslog-model.lua b/syslog-model.lua
new file mode 100644
index 0000000..7391cfe
--- /dev/null
+++ b/syslog-model.lua
@@ -0,0 +1,44 @@
+module(..., package.seeall)
+
+require("pidof")
+require("split")
+
+-- we actually need root permissions to get the process list
+priv = {}
+function priv.is_enabled()
+ return (pidof.pidof("syslogd"))
+end
+
+function priv.enable(opts)
+ if opts and opts.remote then
+ local f = io.open("/etc/conf.d/syslog", "w")
+ if f == nil then
+ return nil
+ end
+ f:write("# this file was written by and will be overwritten by acf\n")
+ f:write("SYSLOGD_OPTS=\"-R "..opts.remote.."\"")
+ f:close()
+ end
+ os.system("/etc/init.d/syslogd restart; rc_add -k -s 20 syslog")
+end
+
+
+-- this func does not need privileges
+function readopts()
+ local opts = {}
+ local line
+ local f = io.open("/etc/conf.d/syslog", "r")
+ if f == nil then
+ return nil
+ end
+ for line in f:lines() do
+ local optstr = string.match(line, "^SYSLOGD_OPTS=\"?(.*)\"?")
+ if optstr then
+ opts.remote = string.match(optstr, "-R%s*(.*)%s*.*$")
+ opts.optstr = optstr
+ end
+ end
+ return opts
+end
+
+