[PATCH 6/7] box/console: Provide console.eos() api
Cyrill Gorcunov
gorcunov at gmail.com
Fri Oct 4 10:49:25 MSK 2019
The other modules would be able to find out which eos marker
is currently active. For example when reading replies from
remote server via text based console protocol.
@TarantoolBot document
Title: > require('console').eos()
Returns a string with currently active end of string marker.
Part-of #3834
Reviewed-by: Konstantin Osipov <kostja.osipov at gmail.com>
Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
---
src/box/lua/console.lua | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/box/lua/console.lua b/src/box/lua/console.lua
index efd1cddd8..7cf8cfb68 100644
--- a/src/box/lua/console.lua
+++ b/src/box/lua/console.lua
@@ -177,6 +177,23 @@ local function current_eos()
return output_eos[current_output()["fmt"]]
end
+--
+-- Set/get current console EOS value from
+-- currently active output format.
+local function console_eos(eos_value)
+ if not eos_value then
+ return tostring(current_eos())
+ end
+ -- We can't allow to change yaml eos format
+ -- because it is a part of encoding standart.
+ local d = current_output()
+ if d["fmt"] == "yaml" then
+ error("console.eos(): is immutable for output " .. d["fmt"])
+ else
+ output_eos[d["fmt"]] = eos_value
+ end
+end
+
--
-- Map output format descriptor into a "\set" command.
local function output_to_cmd_string(desc)
@@ -805,6 +822,7 @@ package.loaded['console'] = {
delimiter = delimiter;
set_default_output = set_default_output;
get_default_output = get_default_output;
+ eos = console_eos;
ac = ac;
connect = connect;
listen = listen;
--
2.20.1
More information about the Tarantool-patches
mailing list