From 055e3e7cead720db80812b6674ded19ee842c573 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Tue, 1 Jan 2013 23:35:52 +0000 Subject: Replace io.popen with modelfunctions.run_executable --- postfix-model.lua | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) (limited to 'postfix-model.lua') diff --git a/postfix-model.lua b/postfix-model.lua index f3a0634..a932b05 100644 --- a/postfix-model.lua +++ b/postfix-model.lua @@ -13,8 +13,6 @@ local packagename = "postfix" local baseurl = "/etc/postfix/" local aliasesfile = "/etc/postfix/aliases" -local path = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin " - -- ################################################################################ -- LOCAL FUNCTIONS @@ -140,8 +138,8 @@ end function rebuild_databases(self, rebuild) local result = {"Rebuilding databases"} - table.insert(result, " See logfile for possible errors") - local cmd,f,cmdresult + local errresult = false + local cmd,f,cmdresult,errtxt -- parse main.cf looking for hash files local config, content = getconfig() for i,db in ipairs({"btree", "cdb", "dbm", "hash", "sdbm"}) do @@ -149,30 +147,36 @@ function rebuild_databases(self, rebuild) filename = string.gsub(filename, ",$", "") -- run postmap on file if filename and not string.find(filename, aliasesfile) then - cmd = "postmap "..filename - table.insert(result, "Running: "..cmd) - f = io.popen(format.escapespecialcharacters(path..cmd)) - table.insert(result, f:read("*a")) - f:close() + table.insert(result, "Running: postmap"..filename) + cmdresult, errtxt = modelfunctions.run_executable({"postmap", filename}, true) + if errtxt then + errresult = true + table.insert(result, errtxt) + end + table.insert(result, cmdresult) end end end -- finally, run newaliases - cmd = "newaliases" - table.insert(result, "Running: "..cmd) - f = io.popen(format.escapespecialcharacters(path..cmd)) - table.insert(result, f:read("*a")) - f:close() + table.insert(result, "Running: newaliases") + cmdresult, errtxt = modelfunctions.run_executable({"newaliases"}, true) + if errtxt then + errresult = true + table.insert(result, errtxt) + end + table.insert(result, cmdresult) - rebuild.descr = table.concat(result, "\n") + if errresult then + rebuild.errtxt = table.concat(result, "\n") + else + rebuild.descr = table.concat(result, "\n") + end return rebuild end function getmailqueue() - local f = io.popen(path.."mailq") - local result = f:read("*a") - f:close() - return cfe({ type="longtext", value=result, label="Postfix Mail Queue" }) + local result, errtxt = modelfunctions.run_executable({"mailq"}) + return cfe({ type="longtext", value=result, label="Postfix Mail Queue", errtxt=errtxt }) end function getflushqueue() @@ -181,10 +185,7 @@ function getflushqueue() end function flushqueue(self, flush) - local f = io.popen(path.."postqueue -f") - local result = f:read("*a") - f:close() - if not result or result == "" then result = "Queue Flushed" end - flush.descr = result + flush.descr, flush.errtxt = modelfunctions.run_executable({"postqueue", "-f"}) + if not flush.errtxt and flush.descr == "" then flush.descr = "Queue Flushed" end return flush end -- cgit v1.2.3