[Tarantool-patches] [PATCH v6 0/4] popen: Add ability to run external process
Cyrill Gorcunov
gorcunov at gmail.com
Tue Dec 17 15:54:16 MSK 2019
In this series we provide a way to execute external binaries
from inside of Lua scripts, control children process and
communicate with their stdin/out/err streams.
In v6 I reworked the API using coio as main nonblocking
i/o engine. (v3,4,5 are kept internal for testing reasons).
Probably the best way to start read this series is
the last patch where real examples of usage are
present.
Note the tests won't pass because they require our
test-run engine to unblock 'popen' module. Still
if do these commands inside tarantool console they
work as expected and give enough information about
API.
Issue https://github.com/tarantool/tarantool/issues/4031
Branch https://github.com/tarantool/tarantool/tree/gorcunov/gh-4031-popen-6
Cyrill Gorcunov (4):
coio: Export helpers and provide coio_read_fd_timeout
popen: Introduce a backend engine
popen/lua: Add popen module
popen/test: Add base test cases
src/CMakeLists.txt | 2 +
src/box/applier.cc | 2 +-
src/lib/core/CMakeLists.txt | 1 +
src/lib/core/coio.cc | 41 ++
src/lib/core/coio.h | 31 +-
src/lib/core/popen.c | 1204 +++++++++++++++++++++++++++++++++++
src/lib/core/popen.h | 207 ++++++
src/lua/init.c | 4 +
src/lua/popen.c | 483 ++++++++++++++
src/lua/popen.h | 44 ++
src/lua/popen.lua | 516 +++++++++++++++
src/main.cc | 4 +
test/app/popen.result | 234 +++++++
test/app/popen.test.lua | 91 +++
14 files changed, 2858 insertions(+), 6 deletions(-)
create mode 100644 src/lib/core/popen.c
create mode 100644 src/lib/core/popen.h
create mode 100644 src/lua/popen.c
create mode 100644 src/lua/popen.h
create mode 100644 src/lua/popen.lua
create mode 100644 test/app/popen.result
create mode 100644 test/app/popen.test.lua
--
2.20.1
More information about the Tarantool-patches
mailing list