module(..., package.seeall) -- Load libraries require("modelfunctions") require("fs") require("format") -- Set variables local confdfile = "/etc/conf.d/postgresql" local processname = "postgresql" local packagename = "postgresql" local path = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin " local datadirectory local filelist -- ################################################################################ -- LOCAL FUNCTIONS local determinefilelist = function() if not filelist then datadirectory = format.get_ini_entry(fs.read_file(confdfile) or "", "", "PGDATA") filelist = fs.find_files_as_array(".*%.conf", datadirectory) end return filelist end -- ################################################################################ -- PUBLIC FUNCTIONS function startstop_service(action) return modelfunctions.startstop_service(processname, action, {"Setup", "Start", "Stop", "Restart"}) end function getstatus() return modelfunctions.getstatus(processname, packagename, "Postgresql Status") end function getstatusdetails() return cfe({ type="longtext", value="", label="Postgresql Status Details" }) end function getfilelist() local listed_files = {} for i,name in ipairs(determinefilelist()) do local filedetails = fs.stat(name) or {} table.insert ( listed_files , {filename=name, mtime=filedetails.mtime or "---", filesize=filedetails.size or "0"} ) end table.sort(listed_files, function (a,b) return (a.filename < b.filename) end ) return cfe({ type="list", value=listed_files, label="Postgresql File List" }) end function getfiledetails(filename) return modelfunctions.getfiledetails(filename, determinefilelist()) end function updatefiledetails(filedetails) return modelfunctions.setfiledetails(filedetails, determinefilelist()) end