[PATCH BlueZ] shared/shell: Print out help if using invalid command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Because Vincent Petry kindly reported that it is hard to use a command
in a submenu, clients are changed to print out help messages as below
when an invalid command is used.

  [bluetooth]# list-attributes
  Invalid command in menu main: list-attributes

  Use "help" for a list of available commands in a menu.
  Use "menu <submenu>" if you want to enter any submenu.
  Use "back" if you want to return to menu main.
---
 src/shared/shell.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/shared/shell.c b/src/shared/shell.c
index f1b85f202..47c048122 100644
--- a/src/shared/shell.c
+++ b/src/shared/shell.c
@@ -191,6 +191,15 @@ static const struct bt_shell_menu_entry default_menu[] = {
 	{ }
 };
 
+static void shell_print_help(void)
+{
+	print_text(COLOR_HIGHLIGHT,
+		"\n"
+		"Use \"help\" for a list of available commands in a menu.\n"
+		"Use \"menu <submenu>\" if you want to enter any submenu.\n"
+		"Use \"back\" if you want to return to menu main.");
+}
+
 static void shell_print_menu(void)
 {
 	const struct bt_shell_menu_entry *entry;
@@ -341,8 +350,12 @@ static void shell_exec(int argc, char *argv[])
 		return;
 
 	if (menu_exec(default_menu, argc, argv) == -ENOENT) {
-		if (menu_exec(data.menu->entries, argc, argv) == -ENOENT)
-			print_text(COLOR_HIGHLIGHT, "Invalid command");
+		if (menu_exec(data.menu->entries, argc, argv) == -ENOENT) {
+			print_text(COLOR_HIGHLIGHT,
+					"Invalid command in menu %s: %s",
+					data.menu->name , argv[0]);
+			shell_print_help();
+		}
 	}
 }
 
-- 
2.14.1

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux