summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--postfix-model.lua49
1 files changed, 25 insertions, 24 deletions
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