From 0ab11b9ff3aedaa2b1ed23bdd407588bde2576cf Mon Sep 17 00:00:00 2001 From: Mika Havela Date: Tue, 4 Dec 2007 15:28:15 +0000 Subject: Starting up openntpd git-svn-id: svn://svn.alpinelinux.org/acf/openntpd/trunk@403 ab2d0c66-481e-0410-8bed-d214d4d58bed --- openntpd-model.lua | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 openntpd-model.lua (limited to 'openntpd-model.lua') diff --git a/openntpd-model.lua b/openntpd-model.lua new file mode 100644 index 0000000..742c64a --- /dev/null +++ b/openntpd-model.lua @@ -0,0 +1,118 @@ +module (..., package.seeall) + +require("format") +require("fs") + +local ntpdconfig = "/etc/ntpd.conf" +local progname = "openntpd" + +local function config_content( f ) + local config = {} + config.name = f + local conf_file = fs.read_file_as_array ( config.name ) + for i=1,table.maxn(conf_file) do + local l = conf_file[i] + -- Filter out commented lines + if not string.find ( l, "^[;#].*" ) then + local a,b,c = string.match ( l, "^%s*(%S+)%s*(%S*)%s*(%S*).*$" ) + if (a) then + if not (config[string.lower(a)]) then + config[string.lower(a)] = {} + end + if (string.lower(a) == "listen") then + table.insert (config[string.lower(a)], {value=c} ) + else + table.insert (config[string.lower(a)], {value=b} ) + end + end + end + end + return config +end + +local function file_info ( path ) + require("posix") + local filedetails = posix.stat(path) + filedetails["owner"]=rawget((posix.getpasswd(filedetails["uid"])),"name") + filedetails["group"]=rawget((posix.getgroup(filedetails["gid"])),"name") + filedetails["atimelong"]=os.date("%c", filedetails["atime"]) + filedetails["mtimelong"]=os.date("%c", filedetails["mtime"]) + filedetails["longname"]=path + filedetails["name"]=basename(path) + + if ( filedetails["size"] > 1073741824 ) then + filedetails["size"]=((filedetails["size"]/1073741824) - (filedetails["size"]/1073741824%0.1)) .. "G" + elseif ( filedetails["size"] > 1048576 ) then + filedetails["size"]=((filedetails["size"]/1048576) - (filedetails["size"]/1048576%0.1)) .. "M" + elseif ( filedetails["size"] > 1024 ) then + filedetails["size"]=((filedetails["size"]/1024) - (filedetails["size"]/1024%0.1)) .. "k" + else + filedetails["size"]=filedetails["size"] + end + return filedetails +end + +local function get_version () + local f,error = io.popen("/sbin/apk_version -v -s openntpd") + local programversion = f:read("*a") + f:close() + return programversion +end + + +-- ################################################################################ +-- PUBLIC FUNCTIONS +--[[ +function restart_service () + local f,err = io.popen("/etc/init.d/shorewall restart") + local restart = f:read("*a") + f:close() + local status = get_status() + status.restart = restart + return status +end +--]] +--[[ +function get_status () + local f,error = io.popen("/sbin/shorewall status") + local fake = f:read("*l") + local fake = f:read("*l") + local programstatus = f:read("*l") + local programstate = f:read("*l") + f:close() + local f,error = io.popen("/sbin/shorewall version") + local programversion = f:read("*l") + f:close() + return {programversion=programversion,programstatus=programstatus,programstate=programstate} +end +--]] + +function get () + local path = ntpdconfig + config = config_content ( path ) + config["version"] = get_version() + return config +end + +function get_filecontent (self) + local path = ntpdconfig + file_content = nil + if (fs.is_file(path)) then + local filedetails = file_info(path) + local file = io.open( path ) + local file_result = file:read("*a") or "unknown" + file:close() + file_content = {name=name, value=file_result, filedetails=filedetails} + else + file_content = {value="", errtxt="File is missing, but will be created when you save your new settings",filedetails={longname=path, size="0", mtimelong=""}} + end + return file_content +end + +function update_filecontent (self, modifications) + local path = ntpdconfig + local file_result,err = fs.write_file(path, format.dostounix(modifications)) + file_content = get_filecontent() + return file_content +end + -- cgit v1.2.3