Skip to content

Interactive console now autorequires a couple of built-in modules #4196

Open
@TarantoolBot

Description

@TarantoolBot

Related dev. issue(s): tarantool/tarantool#9986
Related doc. issue(s): #4191

Product: Tarantool
Since: 3.2
Root document: https://www.tarantool.io/en/doc/latest/reference/reference_lua/console/
SME: @ Totktonada

There are built-in modules that are frequently used for administration
or debugging purposes. It is convenient to have them accessible in the
interactive console without extra actions.

They're accessible now without a manual require call if the
console_session_scope_vars compat option is set to new (see also
#4191).

The list of the autorequired modules is below.

  • clock
  • compat
  • config
  • datetime
  • decimal
  • ffi
  • fiber
  • fio
  • fun
  • json
  • log
  • msgpack
  • popen
  • uuid
  • varbinary
  • yaml

See tarantool/tarantool#9986 for motivation behind this feature.

This list forms so called initial environment for an interactive console
session. The default initial environment may be adjusted by an
application, for example, to include application specific administrator
functions.

Two public functions are added for this purpose: console.initial_env()
and console.set_initial_env(env).

Example 1 (keep autorequired modules, but add one more variable):

local console = require('console')

-- Add myapp_info function.
local initial_env = console.initial_env()
initial_env.myapp_info = function()
    <...>
end

Example 2 (replace the whole initial environment):

local console = require('console')

-- Add myapp_info function, discard the autorequired modules.
console.set_initial_env({
    myapp_info = function()
        <...>
    end,
})

The console.set_initial_env() call without an argument or with a nil
argument drops the initial environment to its default.

A modification of the initial environment doesn't affect existing
console sessions. It affects console sessions that are created
after the modification.

Please, adjust the console_session_scope_vars compat option
description and extend the built-in console module reference with the
new functions.

Requested by @Totktonada in tarantool/tarantool@8c9965a (tarantool/tarantool#9986, tarantool/tarantool#10014).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions