From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 399D046971A for ; Tue, 10 Dec 2019 12:49:04 +0300 (MSK) Received: by mail-lj1-f180.google.com with SMTP id u17so19116869lja.4 for ; Tue, 10 Dec 2019 01:49:04 -0800 (PST) From: Cyrill Gorcunov Date: Tue, 10 Dec 2019 12:48:50 +0300 Message-Id: <20191210094855.24953-1-gorcunov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v2 0/5] popen: Add ability to run external process List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tml 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 v2 I tried to stabilize api a bit still i don't like current Lua api with a passion, thus please take a look if we can improve here something. I'm far from being Lua code profi so help would be really appreciated. Probably the best way to start read this series is the last patch where real examples of usage are present. All patches are sitting in branch gorcunov/gh-4031-popen-2 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: Add ability to run external programs test: Add app/popen test src/lib/core/CMakeLists.txt | 1 + src/lib/core/coio_file.c | 115 ++++ src/lib/core/coio_file.h | 8 + src/lib/core/popen.c | 1168 +++++++++++++++++++++++++++++++++++ src/lib/core/popen.h | 187 ++++++ src/lua/fio.c | 346 ++++++++++- src/lua/fio.lua | 578 +++++++++++++++++ src/main.cc | 4 + test/app/popen.result | 179 ++++++ test/app/popen.test.lua | 68 ++ 10 files changed, 2650 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