Tarantool development patches archive
 help / color / mirror / Atom feed
From: Cyrill Gorcunov <gorcunov@gmail.com>
To: tml <tarantool-patches@dev.tarantool.org>
Subject: [Tarantool-patches] [PATCH v6 0/4] popen: Add ability to run external process
Date: Tue, 17 Dec 2019 15:54:16 +0300	[thread overview]
Message-ID: <20191217125420.20881-1-gorcunov@gmail.com> (raw)

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

             reply	other threads:[~2019-12-17 12:54 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-17 12:54 Cyrill Gorcunov [this message]
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 1/4] coio: Export helpers and provide coio_read_fd_timeout Cyrill Gorcunov
2019-12-20  7:48   ` Konstantin Osipov
2019-12-20 14:50     ` Cyrill Gorcunov
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 2/4] popen: Introduce a backend engine Cyrill Gorcunov
2019-12-20  8:11   ` Konstantin Osipov
2019-12-20 11:52     ` Cyrill Gorcunov
2019-12-20 12:04       ` Konstantin Osipov
2019-12-20 12:10         ` Cyrill Gorcunov
2019-12-20 12:11     ` Alexander Turenko
2019-12-26  7:14   ` Konstantin Osipov
2019-12-26  7:19     ` Cyrill Gorcunov
2020-01-09 11:23     ` Cyrill Gorcunov
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 3/4] popen/lua: Add popen module Cyrill Gorcunov
2019-12-20 15:41   ` Maxim Melentiev
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 4/4] popen/test: Add base test cases Cyrill Gorcunov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191217125420.20881-1-gorcunov@gmail.com \
    --to=gorcunov@gmail.com \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v6 0/4] popen: Add ability to run external process' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox