]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11444: Capture return code from `os.execute()`; stop attempting to concat boolean...
authorAndrew Siplas <andrew@asiplas.net>
Sun, 7 Oct 2018 02:53:49 +0000 (22:53 -0400)
committerAndrew Siplas <andrew@asiplas.net>
Sun, 7 Oct 2018 02:53:49 +0000 (22:53 -0400)
os.execute() returns [3
variables](https://github.com/lua/lua/blob/f59e6a93c0ad38a27a420e51abf8f13d962446b5/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.

scripts/lua/sound_test.lua

index e29c2f9ca7fed8562818857a81f759f0a00f8226..ee169f88f2835127de01777b3c74eae4a3577c49 100644 (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
\ No newline at end of file