From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) (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 96A1846971A for ; Wed, 11 Dec 2019 12:28:39 +0300 (MSK) Received: by mail-lf1-f65.google.com with SMTP id r14so16126933lfm.5 for ; Wed, 11 Dec 2019 01:28:39 -0800 (PST) From: Cyrill Gorcunov Date: Wed, 11 Dec 2019 12:28:28 +0300 Message-Id: <20191211092833.12212-1-gorcunov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v3 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 v3 I addressed a problem of soft termination of a child process and updated changelog for Lua interface. Probably the best way to start read this series is the last patch where real examples of usage are present. branch gorcunov/gh-4031-popen-3 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 | 1217 +++++++++++++++++++++++++++++++++++ src/lib/core/popen.h | 218 +++++++ src/lua/fio.c | 346 +++++++++- src/lua/fio.lua | 576 +++++++++++++++++ src/main.cc | 4 + test/app/popen.result | 230 +++++++ test/app/popen.test.lua | 87 +++ 10 files changed, 2798 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