summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2008-01-31 16:23:48 +0000
committerMika Havela <mika.havela@gmail.com>2008-01-31 16:23:48 +0000
commit272e1f2444e68ed59533719f433b9435aa7f48a7 (patch)
tree17df8f736029f9c044e8beeb98c52b5c2b388e91
parent6d30c3259050b88f42e92038e8eb8d325fc28540 (diff)
downloadacf-alpine-baselayout-272e1f2444e68ed59533719f433b9435aa7f48a7.tar.bz2
acf-alpine-baselayout-272e1f2444e68ed59533719f433b9435aa7f48a7.tar.xz
Changing things so we use cfe for sending/receiving things from model and controller.
The view-file is using loops instead to reduce code. git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@668 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r--syslog-config-html.lsp222
-rw-r--r--syslog-controller.lua87
-rw-r--r--syslog-expert-html.lsp9
-rw-r--r--syslog-model.lua137
-rw-r--r--syslog-status-html.lsp67
5 files changed, 329 insertions, 193 deletions
diff --git a/syslog-config-html.lsp b/syslog-config-html.lsp
index ddb73c4..8284dc7 100644
--- a/syslog-config-html.lsp
+++ b/syslog-config-html.lsp
@@ -1,128 +1,132 @@
-<? local view = ... ?>
-
-<h1>SYSTEM INFO</h1>
-
-<DL>
- <dt><?= view.status.status.name ?></dt>
- <dd><?= view.status.status.value ?><p class='error'><?= view.status.status.errtxt ?></p></dd>
-
- <dt><?= view.status.version.name ?></dt>
- <dd><?= view.status.version.value ?><p class='error'><?= view.status.version.errtxt ?></p></dd>
-</DL>
-
-<H1>CONFIGURATION</H1>
-<form name="config" action="" method="POST">
+<? local form = ... ?>
+<?
+--[[ DEBUG INFORMATION
+io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>")
+io.write(html.cfe_unpack(form))
+io.write("</span>")
+--]]
+?>
-<H2>Advanced config</H2>
-<H3>General settings</H3>
+<H1>SYSTEM INFO</H1>
<DL>
- <? var = "-O" ?>
- <DT <? if (view.errors) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("class='error'") end ?>>Log to given file</DT>
- <DD><input type="text" class="text" name="<?= var ?>" value="<?= view.config["SYSLOGD_OPTS"][var] ?>"/>
- <? if (view.errors["SYSLOGD_OPTS"]) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("<p class='error'>", view.errors["SYSLOGD_OPTS"]["-O"] ,"</p>") end ?>
- </DD>
-
- <? var = "-l" ?>
- <DT <? if (view.errors) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("class='error'") end ?>>Set local log level</DT>
- <DD>
- <? for i=1, table.maxn(view.config["SYSLOGD_OPTS"]["-l_list"]) do ?>
- <input class="radio" type="radio" name="<?= var ?>" value="<?= i ?>"
- <? if (tostring(view.config["SYSLOGD_OPTS"]["-l_list"][i]) == tostring(view.config["SYSLOGD_OPTS"][var]))
- then io.write('checked=yes') end ?>>
- <?= view.config["SYSLOGD_OPTS"]["-l_list"][i] ?>
- <? end ?>
- <p>(1=Quiet, ... , <?= table.maxn(view.config["SYSLOGD_OPTS"]["-l_list"]) ?>=Debug)</p>
- <? if (view.errors["SYSLOGD_OPTS"]) and (view.errors["SYSLOGD_OPTS"][var]) then
- io.write("<p class='error'>",view.errors["SYSLOGD_OPTS"][var] ,"</p>")
- end ?>
- </DD>
-
- <? var = "-S" ?>
- <DT <? if (view.errors) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("class='error'") end ?>>Smaller logging output</DT>
- <DD><input type="checkbox" name="<?= var ?>" <? if (view.config["SYSLOGD_OPTS"][var]) then io.write('checked=yes') end ?> />
- <? if (view.errors["SYSLOGD_OPTS"]) and (view.errors["SYSLOGD_OPTS"][var]) then
- io.write("<p class='error'>",view.errors["SYSLOGD_OPTS"][var] ,"</p>")
- end ?>
- </DD>
+<?
+local myform = form.status
+local tags = { "status", "version", }
+
+for k,v in pairs(tags) do
+ local val = myform[v]
+ io.write("\t<DT")
+ if (#val.errtxt > 0) then io.write(" class='error'") end
+ io.write(">" .. val.label .. "</DT>\n")
+
+ io.write("\t\t<DD>" .. val.value .. "\n")
+ if (val.descr) and (#val.descr > 0) then io.write("\t\t<P CLASS='descr'>" .. val.descr .. "</P>\n") end
+ if (#val.errtxt > 0) then io.write("\t\t<P CLASS='error'>" .. val.errtxt .. "</P>\n") end
+ io.write("\t\t</DD>\n")
+
+end ?>
</DL>
-<H3>Save logs for a longer period</H3>
-
-<DL>
- <? var = "-s" ?>
- <DT <? if (view.errors) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("class='error'") end ?>>Max size (KB) before rotate</DT>
- <DD><input type="text" class="text" name="<?= var ?>" value="<?= view.config["SYSLOGD_OPTS"][var] ?>"/>
- <p>(default=200KB, 0=off)</p>
- <? if (view.errors["SYSLOGD_OPTS"]) and (view.errors["SYSLOGD_OPTS"][var]) then
- io.write("<p class='error'>",view.errors["SYSLOGD_OPTS"][var] ,"</p>")
- end ?>
- </DD>
-
- <? var = "-b" ?>
- <DT <? if (view.errors) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("class='error'") end ?>>Number of rotated logs to keep</DT>
- <DD><input type="text" class="text" name="<?= var ?>" value="<?= view.config["SYSLOGD_OPTS"][var] ?>"/>
- <p>(default=1, max=99, 0=purge)</p>
- <? if (view.errors["SYSLOGD_OPTS"]) and (view.errors["SYSLOGD_OPTS"][var]) then
- io.write("<p class='error'>",view.errors["SYSLOGD_OPTS"][var] ,"</p>")
- end ?>
- </DD>
-</DL>
+<?
+function configform(myform,tags)
+ io.write("<DL>")
+ for k,v in pairs(tags) do
+ if (myform[v]) then
+ local val = myform[v]
+ io.write("\t<DT")
+ if (#val.errtxt > 0) then io.write(" class='error'") end
+ io.write(">" .. val.label .. "</DT>\n")
+
+ io.write("\t\t<DD>" .. html.form[val.type](val) .. "\n")
+ if (val.descr) and (#val.descr > 0) then io.write("\t\t<PRE CLASS='descr'>" .. val.descr .. "</PRE>\n") end
+ if (#val.errtxt > 0) then io.write("\t\t<P CLASS='error'>" .. val.errtxt .. "</P>\n") end
+ io.write("\t\t</DD>\n")
+ end
+ end
+ io.write("</DL>")
+end
+?>
-<H3>Remote logging</H3>
-<DL>
+<H1>CONFIGURATION</H1>
+<? local myform = form.config ?>
+<form action="<?= form.option.script .. "/" .. form.option.prefix ..
+ form.option.controller .. "/" .. form.option.action ?>" method="POST">
+
+<? --[[ ?>
+<H2>GUIDED CONFIGURATION</H2>
+<H3>REMOTE LOGGING</H3>
+<?
+local tags = { "remotelogging", }
+configform(myform,tags)
+?>
+<? --]] ?>
- <? var = "-L" ?>
- <DT <? if (view.errors) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("class='error'") end ?>>Log locally and via network</DT>
- <DD><input type="checkbox" name="<?= var ?>" <? if (view.config["SYSLOGD_OPTS"][var]) then io.write('checked=yes') end ?> />
- <P>(default is network only if you have defined remote-logging)</p>
- <? if (view.errors["SYSLOGD_OPTS"]) and (view.errors["SYSLOGD_OPTS"][var]) then
- io.write("<p class='error'>",view.errors["SYSLOGD_OPTS"][var] ,"</p>")
- end ?>
- </DD>
-
- <? var = "-R" ?>
- <DT <? if (view.errors) and (view.errors["SYSLOGD_OPTS"][var]) then io.write("class='error'") end ?>>Log to IP or hostname on PORT</DT>
- <DD><input type="text" class="text" name="<?= var ?>" value="<?= view.config["SYSLOGD_OPTS"][var] ?>"/>
- <P>(Empty=No remote logging) HOST[:PORT] (default PORT=514/UDP)</P>
- <? if (view.errors["SYSLOGD_OPTS"]) and (view.errors["SYSLOGD_OPTS"][var]) then
- io.write("<p class='error'>",view.errors["SYSLOGD_OPTS"][var] ,"</p>")
- end ?>
- </DD>
+<H2>ADVANCED CONFIGURATION</H2>
+<H3>GENERAL</H3>
+<?
+local tags = { "logfile", "loglevel", "smallerlogs", }
+configform(myform,tags)
+?>
+<H3>LOGROTATE</H3>
+<?
+local tags = { "maxsize", "numrotate", }
+configform(myform,tags)
+?>
-</DL>
+<H3>REMOTE LOGGING</H3>
+<?
+local tags = { "localandnetworklog", "remotelogging", }
+configform(myform,tags)
+?>
-<H2>Save and apply above settings</H2>
-<DL>
- <DT>Apply settings</DT>
- <DD><input class="submit" type="submit" name="cmdsave" value="Apply" /></DD>
- <? if (view.cmderrors) then ?>
- <dt class='error'>Errors in previous action</dt>
- <dd><pre class='error'><?= view.cmderrors?></pre></dd>
- <? end ?>
-</DL>
+<H2>SAVE AND APPLY ABOVE SETTINGS</H2>
+<?
+local tags = { "cmd_save", }
+configform(myform,tags)
+?>
</form>
-<H1>MANAGEMENT</H1>
-<dl>
- <dt>Program controll-panel</dt>
- <dd><form name="cmd" action="" method="POST">
- <input type=submit class="submit" name="cmddaemon" value="start">
- <input type=submit class="submit" name="cmddaemon" value="stop">
- <input type=submit class="submit" name="cmddaemon" value="restart">
- </form></dd>
+<?
+local myform = form.management
+local tags = { "start", "stop", "restart" }
+if (myform) and (myform[tags[1]]) then
+?>
+ <form name="management" action="" method="POST">
+ <H1>MANAGEMENT</H1>
+ <dl>
+ <dt><?= myform[tags[1]]["label"] ?></dt>
+ <dd>
+ <? for k,v in pairs(tags) do ?>
+ <? if (myform[v]) then ?>
+ <? io.write(html.form[myform[v].type](myform[v])) ?>
+ <? end ?>
+ <? end ?>
+ </dd>
- <? if (view.startstop) and (view.startstop.cmdresult) then ?>
- <dt>Previous action result</dt>
- <dd><pre><?= view.startstop.cmdresult?></pre></dd>
- <? end ?>
-</dl>
+<? --[[ ?>
+ <? if (myform.cmd_save_result) then ?>
+ <? local temp ?>
+ <? for k,v in pairs(myform.cmd_save_result) ?>
+ <? temp = temp .. k ?>
+ <? end ?>
+
+ <dt>Previous action result</dt>
+ <dd><pre><?= temp ?></pre></dd>
+ <? end ?>
+<? --]] ?>
+ </dl>
+ </form>
+<? end ?>
<?
---[[ DEBUG INFORMATION
-require("debugs")
-io.write(debugs.variables(view))
+io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>")
+io.write(html.cfe_unpack(form))
+io.write("</span>")
--]]
?>
+
+
diff --git a/syslog-controller.lua b/syslog-controller.lua
index b183a89..900856c 100644
--- a/syslog-controller.lua
+++ b/syslog-controller.lua
@@ -13,28 +13,88 @@ mvc.on_load = function(self, parent)
end
end
+local function getstatus(self)
+ local status = self.model.getstatus()
+ if (#status.status.value > 0) then
+ status.status.value = "Enabled"
+ else
+ status.status.value = "Disabled"
+ end
+ return status
+end
+
function status(self)
- return { status=self.model.getstatus() }
+ return { status=getstatus(self) }
end
function config(self)
- local cmdresult = {}
+ local cmd_save_result = {}
local cmderrors = {}
if ( self.clientdata.cmddaemon) then
startstop = self.model:startstop_service( self.clientdata.cmddaemon )
end
- if ( self.clientdata.cmdsave) then
- local variables="-O -l -S -s -b -L -R" -- Advanced-config options
- --local variables="-R" -- Guided-config options
+ if ( self.clientdata.cmd_save) then
+ local variables="logfile loglevel smallerlogs maxsize numrotate localandnetworklog remotelogging" -- Advanced-config options
+ --local variables="remotelogging" -- Guided-config options
for var in string.gmatch(variables, "%S+") do
- -- Send nil instead of "" causes the parameter to be removed/deleted/empty/unset
+ -- Send nil instead of "" causes the parameter to be removed/deleted/empty/unset the variable in the config-file
if (self.clientdata[var] == "") then self.clientdata[var] = nil end
- cmdresult[var],cmderrors[var] = self.model:setconfigs("SYSLOGD_OPTS",var,self.clientdata[var])
+ cmd_save_result[var] = self.model:setconfigs("SYSLOGD_OPTS",var,self.clientdata[var])
end
end
- local status = self.model.getstatus()
+ local status = getstatus(self)
+--[[
+ if (#status.status.value > 0) then
+ status.status.value = "Enabled"
+ else
+ status.status.value = "Disabled"
+ end
+--]]
+
local config, errors = self.model.getconfig()
+ -- Add a cmd button to the view
+ config.cmd_save = cfe({ name="cmd_save",
+ label="Save/Apply above settings",
+ value="Save",
+ type="submit",
+ })
+ -- Add a management buttons
+ management = {}
+ management.start = cfe({ name="start",
+ label="Program control-panel",
+ value="Start",
+ type="submit",
+ })
+ management.stop = cfe({ name="stop",
+ label="Program control-panel",
+ value="Stop",
+ type="submit",
+ })
+ management.restart = cfe({ name="restart",
+ label="Program control-panel",
+ value="Restart",
+ type="submit",
+ })
+ -- Disable management buttons based on if the process is running or not
+ if (string.lower(status.status.value) == "enabled" ) then
+ management.start.disabled = "yes"
+ management.stop.disabled = nil
+ else
+ management.start.disabled = nil
+ management.stop.disabled = "yes"
+ end
+
+ -- Disable management buttons if there exist errors in the config
+ for k,v in pairs(config) do
+ if (config[k]["errtxt"] ~= "") then
+ management.start.disabled = "yes"
+ management.stop.disabled = "yes"
+ management.restart.disabled = "yes"
+ break
+ end
+ end
+
local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller
local cmderrors_str = ""
@@ -50,11 +110,16 @@ function config(self)
if (cmderrors_str == "") then cmderrors_str = nil end
return {
+ option={ script=ENV["SCRIPT_NAME"],
+ prefix=self.conf.prefix,
+ controller = self.conf.controller,
+ action = "config", },
status = status,
startstop = startstop,
clientdata = self.clientdata,
- cmdresult = cmdresult,
+ management = management,
config = config,
+ cmd_save_result = cmd_save_result,
errors = errors,
cmderrors = cmderrors_str,
url = url, }
@@ -70,7 +135,9 @@ function expert(self)
startstop = self.model:startstop_service( self.clientdata.cmddaemon )
end
- local status = self.model.getstatus()
+-- local status = self.model.getstatus()
+ local status = getstatus(self)
+
local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller
return { file = self.model:get_filedetails(),
diff --git a/syslog-expert-html.lsp b/syslog-expert-html.lsp
index 4378e9d..527ce22 100644
--- a/syslog-expert-html.lsp
+++ b/syslog-expert-html.lsp
@@ -3,10 +3,10 @@
<h1>SYSTEM INFO</h1>
<DL>
- <dt><?= view.status.status.name ?></dt>
+ <dt><?= view.status.status.label ?></dt>
<dd><?= view.status.status.value ?><p class='error'><?= view.status.status.errtxt ?></p></dd>
- <dt><?= view.status.version.name ?></dt>
+ <dt><?= view.status.version.label ?></dt>
<dd><?= view.status.version.value ?><p class='error'><?= view.status.version.errtxt ?></p></dd>
</DL>
@@ -55,7 +55,8 @@
<?
---[[ DEBUG INFORMATION
-require("debugs")
-io.write(debugs.variables(view))
+io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>")
+io.write(html.cfe_unpack(view))
+io.write("</span>")
--]]
?>
diff --git a/syslog-model.lua b/syslog-model.lua
index 2013b76..0045b5b 100644
--- a/syslog-model.lua
+++ b/syslog-model.lua
@@ -25,13 +25,6 @@ local function getloglevels()
end
return loglevels
end
-local function isrunning(process)
- if (procps.pidof("syslogd")) then
- return "Enabled"
- else
- return "Disabled"
- end
-end
-- ################################################################################
-- PUBLIC FUNCTIONS
@@ -42,23 +35,26 @@ end
function getstatus()
local opts = getconfig()
local status = {}
- status.version = cfe({ name="Program version",
+ status.version = cfe({ name = "version",
+ label="Program version",
value=get_version(),
})
- status.status = cfe({ name="Program status",
- value=isrunning("syslogd"),
+ status.status = cfe({ name="status",
+ label="Program status",
+ value=procps.pidof("syslogd"),
})
- if (opts["SYSLOGD_OPTS"]) and not ((opts["SYSLOGD_OPTS"]["-R"] ~= "") and not (opts["SYSLOGD_OPTS"]["-L"])) then
- status.logfile = cfe({ name="Locally logging to",
- value=opts["SYSLOGD_OPTS"]["-O"],
+ if (opts["remotelogging"]) and not ((opts["remotelogging"]["value"] ~= "") and not (opts["localandnetworklog"]["value"])) then
+ status.logfile = cfe({ name="logfile",
+ label="Locally logging to",
+ value=opts["logfile"]["value"],
})
end
if (opts["SYSLOGD_OPTS"]) and (opts["SYSLOGD_OPTS"]["-R"]) and (opts["SYSLOGD_OPTS"]["-R"] ~= "") then
- status.remote = cfe({ name="Remote logging to",
+ status.remote = cfe({ name="remotelogging",
+ label="Remote logging to",
value=opts["SYSLOGD_OPTS"]["-R"],
})
end
---]]
return status
end
@@ -75,38 +71,71 @@ function get_filedetails()
end
function getconfig()
local config = {}
- config['SYSLOGD_OPTS']={}
- local errors = {}
- errors["SYSLOGD_OPTS"] = {}
- errors["KLOGD_OPTS"] = {}
if (fs.is_file(configfile)) then
- config = getopts.getoptsfromfile(configfile) or config
+ configcontent = getopts.getoptsfromfile(configfile) or config
if (type(config["SYSLOGD_OPTS"]) == "string") then
config["SYSLOGD_OPTS"] = {}
end
else
- errors["configfile"] = "Config file '".. configfile .. "' is missing!"
- end
- -- Next section is to set/show default values when a option is not configured in the configfile
- if not (config["SYSLOGD_OPTS"]) then
- config["SYSLOGD_OPTS"] = {}
+ config["configfile"] = "Config file '".. configfile .. "' is missing!"
end
- config["SYSLOGD_OPTS"]["-O"] = config["SYSLOGD_OPTS"]["-O"] or "/var/log/messages"
- config["SYSLOGD_OPTS"]["-l_list"] = getloglevels()
- config["SYSLOGD_OPTS"]["-R"] = config["SYSLOGD_OPTS"]["-R"] or ""
- config["SYSLOGD_OPTS"]["-s"] = config["SYSLOGD_OPTS"]["-s"] or ""
- config["SYSLOGD_OPTS"]["-b"] = config["SYSLOGD_OPTS"]["-b"] or ""
+ -- Next section selects which configurations we should show to the user
+ config["logfile"] = cfe({
+ name="logfile",
+ label = "Log to given file",
+ value = configcontent["SYSLOGD_OPTS"]["-O"] or "/var/log/messages",
+ })
+ config["loglevel"] = cfe({
+ name="loglevel",
+ label = "Set local log level",
+ value = tonumber(configcontent["SYSLOGD_OPTS"]["-l"]) or 8,
+ type = "select",
+ option = getloglevels(),
+ descr = "1=Quiet, ... , " .. table.maxn(getloglevels()) .. "=Debug",
+ })
+ config["smallerlogs"] = cfe({
+ name="smallerlogs",
+ label = "Smaller logging output",
+ checked = configcontent["SYSLOGD_OPTS"]["-S"],
+ value = "smallerlogs",
+ type = "checkbox",
+ })
+ config["maxsize"] = cfe ({
+ name="maxsize",
+ label = "Max size (KB) before rotate",
+ descr = "Default=200KB, 0=off",
+ value = configcontent["SYSLOGD_OPTS"]["-s"],
+ })
+ config["numrotate"] = cfe ({ name="numrotate",
+ label = "Number of rotated logs to keep",
+ descr = "Default=1, max=99, 0=purge",
+ value = configcontent["SYSLOGD_OPTS"]["-b"],
+ })
+ config["localandnetworklog"] = cfe ({
+ name="localandnetworklog",
+ label = "Log locally and via network",
+ checked = configcontent["SYSLOGD_OPTS"]["-L"],
+ value = "localandnetworklog",
+ type = "checkbox",
+ descr = "Default is network only if -R",
+ })
+ config["remotelogging"] = cfe ({
+ name="remotelogging",
+ label = "Log to IP or hostname on PORT",
+ descr = "host[:PORT] - Default PORT=514/UDP",
+ value = configcontent["SYSLOGD_OPTS"]["-R"],
+ })
+
-- Next section is to print errormessages when configs are wrong
- if (config["SYSLOGD_OPTS"]["-l"]) and
- ((tonumber(config["SYSLOGD_OPTS"]["-l"]) == nil) or (tonumber(config["SYSLOGD_OPTS"]["-l"]) > 8)) then
- errors["SYSLOGD_OPTS"]["-l"] = "Log value is out of range. Please select one of the above."
- else
- config["SYSLOGD_OPTS"]["-l"] = config["SYSLOGD_OPTS"]["-l"] or 8
+ if (configcontent["SYSLOGD_OPTS"]["-l"]) and
+ ((tonumber(configcontent["SYSLOGD_OPTS"]["-l"]) == nil) or (tonumber(configcontent["SYSLOGD_OPTS"]["-l"]) > 8)) then
+ config["loglevel"]["errtxt"] = "Log value is out of range. Please select one of the above."
end
- if (config["SYSLOGD_OPTS"]["-L"] ~= nil) and (config["SYSLOGD_OPTS"]["-R"] == "") then
- errors["SYSLOGD_OPTS"]["-L"] = "Logging to local and network is possible unless you define a host for remote logging."
+
+ if (configcontent["SYSLOGD_OPTS"]["-L"] ~= nil) and (configcontent["SYSLOGD_OPTS"]["-R"] == "") then
+ config["localandnetworklog"]["errtxt"] = "Logging to local and network is possible unless you define a host for remote logging."
end
- return config, errors
+ return config
end
service_control = function ( self, srvcmd )
@@ -130,17 +159,33 @@ service_control = function ( self, srvcmd )
end
function setconfigs(self,variable,parameter,value)
- if (errors == nil) then
- errors = {}
- end
+ local variabletranslator = ({
+ logfile = "-O",
+ loglevel = "-l",
+ smallerlogs = "-S",
+ maxsize = "-s",
+ numrotate = "-b",
+ localandnetworklog = "-L",
+ remotelogging = "-R",
+ })
+ parameter = variabletranslator[parameter]
+
--TODO: Validate so that user cant add values with '-' (could cause major breakage next time you do getopts)
--If file is missing... then create a new one
-- if not (fs.is_file(configfile)) then fs.write_file(configfile, "SYSLOGD_OPTS=\"\"\nKLOGD_OPTS=\"\"") end
if not (variable) or not (parameter) then return nil, "Usage setconfigs(variable,parameter,value)" end
if not (string.find(parameter, "-%a$")) then return nil, "Parameter must be formated '-a' (where a is one upper/lowercase letter [a-z])" end
if (value) and (parameter == "-O") then
- value, errors["-O"] = validator.is_valid_filename(value, "/var/log" )
+ local value, errors = validator.is_valid_filename(value, "/var/log" )
+ if (errors) then
+ return cfe({
+ name="setconfig",
+ errtxt= errors,
+ })
+ end
end
+
+--[[
if (value) and (parameter == "-R") then
local port = string.match(value, ":(.-)$")
local host = string.match(value, "^(.-):?")
@@ -149,12 +194,14 @@ function setconfigs(self,variable,parameter,value)
end
errors["-R"] = "Port:'" .. tostring(port) .. "' Host:" .. tostring(host)
end
-
+--]]
-- Set specific variables (and their values)
if (value) and ((parameter == "-S") or (parameter == "-L")) then value = "" end
local retval, errorscmd = getopts.setoptsinfile(configfile,variable,parameter,value)
- errors["commit"] = errorscmd
- return retval, errors
+-- if (errorscmd) and (#errorscmd > 0) then
+ local errorscmd = cfe({ name="variable", errtxt=errorscmd, })
+-- end
+ return errorscmd
end
function update_filecontent (self, modifications)
diff --git a/syslog-status-html.lsp b/syslog-status-html.lsp
index c5b1c0d..d6f5ced 100644
--- a/syslog-status-html.lsp
+++ b/syslog-status-html.lsp
@@ -1,35 +1,52 @@
-<? local view = ... ?>
-
-<h1>SYSTEM INFO</h1>
+<? local form = ... ?>
+<?
+--[[ DEBUG INFORMATION
+io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>")
+io.write(html.cfe_unpack(form))
+io.write("</span>")
+--]]
+?>
+<H1>SYSTEM INFO</H1>
<DL>
- <dt><?= view.status.status.name ?></dt>
- <dd><?= view.status.status.value ?><p class='error'><?= view.status.status.errtxt ?></p></dd>
+<?
+local myform = form.status
+local tags = { "status", "version", }
+
+for k,v in pairs(tags) do
+ local val = myform[v]
+ io.write("\t<DT")
+ if (#val.errtxt > 0) then io.write(" class='error'") end
+ io.write(">" .. val.label .. "</DT>\n")
+
+ io.write("\t\t<DD>" .. val.value .. "\n")
+ if (val.descr) and (#val.descr > 0) then io.write("\t\t<P CLASS='descr'>" .. val.descr .. "</P>\n") end
+ if (#val.errtxt > 0) then io.write("\t\t<P CLASS='error'>" .. val.errtxt .. "</P>\n") end
+ io.write("\t\t</DD>\n")
- <dt><?= view.status.version.name ?></dt>
- <dd><?= view.status.version.value ?><p class='error'><?= view.status.version.errtxt ?></p></dd>
+end ?>
</DL>
<H2>PROGRAM SPECIFIC OPTIONS/INFORMATION</H2>
<DL>
- <? if (view.status.logfile) then ?>
- <dt><?= view.status.logfile.name ?></dt>
- <dd><?= view.status.logfile.value ?><p class='error'><?= view.status.logfile.errtxt ?></p></dd>
- <? end ?>
-
- <? if (view.status.remote) then ?>
- <dt><?= view.status.remote.name ?></dt>
- <dd><?= view.status.remote.value ?><p class='error'><?= view.status.remote.errtxt ?></p></dd>
- <? end ?>
+<?
+local myform = form.status
+local tags = { "logfile", "remotelogging", }
+
+for k,v in pairs(tags) do
+ if (myform[v]) then
+ local val = myform[v]
+ io.write("\t<DT")
+ if (#val.errtxt > 0) then io.write(" class='error'") end
+ io.write(">" .. val.label .. "</DT>\n")
+
+ io.write("\t\t<DD>" .. val.value .. "\n")
+ if (val.descr) and (#val.descr > 0) then io.write("\t\t<P CLASS='descr'>" .. val.descr .. "</P>\n") end
+ if (#val.errtxt > 0) then io.write("\t\t<P CLASS='error'>" .. val.errtxt .. "</P>\n") end
+ io.write("\t\t</DD>\n")
+ end
+end ?>
</DL>
-<H1>DEBUGGING</H1>
-<H2>CFE debugging</H2>
-<?= html.cfe_unpack(view) ?>
-<?
----[[ DEBUG INFORMATION
-require("debugs")
-io.write(debugs.variables(view))
---]]
-?>
+