[Tarantool-patches] [PATCH 0/5] popen: Add ability to run external process
Cyrill Gorcunov
gorcunov at gmail.com
Thu Nov 28 23:45:07 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.
The series is preliminary since there are known issues
I have to resolve before merging. Still to share code
early I decided to post them even in such shape.
While I'm more-less sure about stability of the engine
itself (which lays in src/lib/core/popen.c) the lua interface
which sits in src/lua/fio.lua looks not that convenient I think.
All created popen objects require explicit popen:close call
probably I should hook up lua GC (as I being advised).
Anyway please take a look once time permit. Any comments
are highly appreciated.
All patches are sitting in branch gorcunov/gh-4031-popen
Cyrill Gorcunov (5):
popen: Introduce a backend engine
lua/fio: Add lbox_fio_push_error as a separate helper
popen/fio: Merge popen engine into fio internal module
popen/fio: Implement lua interface for a popen object
test: Add app/popen test
src/lib/core/CMakeLists.txt | 1 +
src/lib/core/coio_file.c | 155 +++++
src/lib/core/coio_file.h | 10 +
src/lib/core/popen.c | 1204 +++++++++++++++++++++++++++++++++++
src/lib/core/popen.h | 135 ++++
src/lua/fio.c | 250 +++++++-
src/lua/fio.lua | 434 +++++++++++++
src/main.cc | 4 +
test/app/popen.result | 105 +++
test/app/popen.test.lua | 39 ++
10 files changed, 2333 insertions(+), 4 deletions(-)
create mode 100644 src/lib/core/popen.c
create mode 100644 src/lib/core/popen.h
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