From e27c523a10708b7265c33a4bae631663df4bb297 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 16 Aug 2020 02:54:44 +0200 Subject: command: extend subprocess command stdin, change behavior Make it possible to feed a string to stdin of a subprocess. Out of laziness, it can't be an arbitrary byte string. (Would require adding an option type that takes in a Lua byte string.) Do not set stdin of a subprocess to fd 0 (i.e. mpv's stdin) anymore, because it makes things more consistent. Enabling stdin didn't make too much sense in the first place, so this behavior change seems justifiable. win32 support missing. Fixes: #8003 --- TOOLS/lua/command-test.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'TOOLS') diff --git a/TOOLS/lua/command-test.lua b/TOOLS/lua/command-test.lua index 30d8cc05ff..877cacdeb6 100644 --- a/TOOLS/lua/command-test.lua +++ b/TOOLS/lua/command-test.lua @@ -76,6 +76,25 @@ mp.observe_property("vo-configured", "bool", function(_, v) end) + mp.command_native_async({name = "subprocess", args = {"wc", "-c"}, + stdin_data = "hello", capture_stdout = true}, + function(res, val, err) + print("Should be '5': " .. val.stdout) + end) + -- blocking stdin by default + mp.command_native_async({name = "subprocess", args = {"cat"}, + capture_stdout = true}, + function(res, val, err) + print("Should be 0: " .. #val.stdout) + end) + -- stdin + detached + mp.command_native_async({name = "subprocess", + args = {"bash", "-c", "(sleep 5s ; cat)"}, + stdin_data = "this should appear after 5s.\n", + detach = true}, + function(res, val, err) + print("5s test: " .. val.status) + end) -- This should get killed on script exit. mp.command_native_async({name = "subprocess", playback_only = false, -- cgit v1.2.3