FS-11444: Capture return code from `os.execute()`; stop attempting to concat boolean/nil to error string.

os.execute() returns [3
variables](f59e6a93c0/lauxlib.c (L286)).
Capture the 2nd (e.g. "exit") and 3rd (e.g. 0) in addition to the first
which would be merely `true` on success or `nil` on error.
This commit is contained in:
Andrew Siplas 2018-10-06 22:53:49 -04:00
parent b5624eca20
commit 5e895b28c7
1 changed files with 4 additions and 4 deletions

View File

@ -60,15 +60,15 @@ else
-- Looks good, let's play some sound files
sound_base = session:getVariable('sounds_dir') .. '/en/us/callie/' .. stype .. '/' .. srate;
input_file = '/tmp/filez.txt';
res = os.execute('ls -1 ' .. sound_base .. ' > ' .. input_file);
freeswitch.consoleLog("INFO","Result of system call: " .. res .. "\n");
if ( res == 0 ) then
res, what, code = os.execute('ls -1 ' .. sound_base .. ' > ' .. input_file);
freeswitch.consoleLog("INFO","Result of system call: " .. what .. " " .. code .. "\n");
if ( res == true and what == 'exit' and code == 0 ) then
for fname in io.lines(input_file) do
freeswitch.consoleLog("NOTICE","Playing file: " .. fname .. "\n");
session:streamFile(sound_base .. '/' .. fname);
session:sleep(100);
end
else
freeswitch.consoleLog("ERR","Result of system call: " .. res .. "\n");
freeswitch.consoleLog("ERR","Result of system call: " .. what .. " " .. code .. "\n");
end
end