shell: add backends command

Add command that lists all active shell backends.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
This commit is contained in:
Jakub Rzeszutko 2022-08-10 13:19:22 +02:00 committed by Carles Cufí
commit 5e33b2daea

View file

@ -11,6 +11,7 @@
#define SHELL_MSG_CMD_NOT_SUPPORTED "Command not supported.\n"
#define SHELL_HELP_CLEAR "Clear screen."
#define SHELL_HELP_BACKENDS "List active shell backends.\n"
#define SHELL_HELP_BACKSPACE_MODE "Toggle backspace key mode.\n" \
"Some terminals are not sending separate escape code for " \
"backspace and delete button. This command forces shell to interpret" \
@ -202,6 +203,21 @@ static int cmd_clear(const struct shell *shell, size_t argc, char **argv)
return 0;
}
static int cmd_backends(const struct shell *sh, size_t argc, char **argv)
{
ARG_UNUSED(argc);
ARG_UNUSED(argv);
uint16_t cnt = 0;
shell_print(sh, "Active shell backends:");
STRUCT_SECTION_FOREACH(shell, obj) {
shell_print(sh, " %2d. :%s", cnt++, obj->ctx->prompt);
}
return 0;
}
static int cmd_bacskpace_mode_backspace(const struct shell *shell, size_t argc,
char **argv)
{
@ -422,6 +438,7 @@ SHELL_STATIC_SUBCMD_SET_CREATE(m_sub_backspace_mode,
);
SHELL_STATIC_SUBCMD_SET_CREATE(m_sub_shell,
SHELL_CMD_ARG(backends, NULL, SHELL_HELP_BACKENDS, cmd_backends, 1, 0),
SHELL_CMD(backspace_mode, &m_sub_backspace_mode,
SHELL_HELP_BACKSPACE_MODE, NULL),
SHELL_COND_CMD(CONFIG_SHELL_VT100_COMMANDS, colors, &m_sub_colors,