projects
/
weathermon.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
299b29f
)
Перехват "лишнего" вывода от вызываемых подпроцессов, чтоб не засорять лог.
author
Roman Bazalevsky
<rvb@rvb.name>
Fri, 21 Oct 2016 14:56:32 +0000
(17:56 +0300)
committer
Roman Bazalevsky
<rvb@rvb.name>
Fri, 21 Oct 2016 14:56:32 +0000
(17:56 +0300)
weathermon.lua
patch
|
blob
|
history
diff --git
a/weathermon.lua
b/weathermon.lua
index 7a366b04f320e6a709b23ad2d8f7b26e1a5a1bf2..af387297ccd5274478816d74928dd5baf4ae199b 100755
(executable)
--- a/
weathermon.lua
+++ b/
weathermon.lua
@@
-21,6
+21,17
@@
function url_encode(str)
return str
end
return str
end
+function capture(cmd, raw)
+ local f = assert(io.popen(cmd, 'r'))
+ local s = assert(f:read('*a'))
+ f:close()
+ if raw then return s end
+ s = string.gsub(s, '^%s+', '')
+ s = string.gsub(s, '%s+$', '')
+ s = string.gsub(s, '[\n\r]+', ' ')
+ return s
+end
+
function mqtt_encode(str)
if (str) then
str = string.gsub (str, "\n", "")
function mqtt_encode(str)
if (str) then
str = string.gsub (str, "\n", "")
@@
-83,7
+94,7
@@
function getConfig(configname)
if serial_port then
command = "stty -F "..serial_port.." "..serial_baud
if serial_port then
command = "stty -F "..serial_port.." "..serial_baud
-
os.
capture(command)
+ capture(command)
end
end
@@
-141,7
+152,7
@@
end
function printLog(str)
if logging=="on" then
function printLog(str)
if logging=="on" then
-
os.execut
e("logger -t weathermon "..str)
+
captur
e("logger -t weathermon "..str)
else
print(str)
end
else
print(str)
end
@@
-163,7
+174,7
@@
function submitValue(type,id,param,val)
command = command.." \""..url.."\""
command = command.." \""..url.."\""
-
os.execut
e(command)
+
result = captur
e(command)
end
end
@@
-311,7
+322,7
@@
function processLine(str)
" \""..string.gsub(alarm_type,"\"","\\\"")..
"\" \""..string.gsub(alarm_id,"\"","\\\"")..
"\" \""..string.gsub(msg_body,"\"","\\\"").."\""
" \""..string.gsub(alarm_type,"\"","\\\"")..
"\" \""..string.gsub(alarm_id,"\"","\\\"")..
"\" \""..string.gsub(msg_body,"\"","\\\"").."\""
-
os.execut
e(command)
+
captur
e(command)
end
else
printLog("Cannot parse alarm input: "..msg_body)
end
else
printLog("Cannot parse alarm input: "..msg_body)