On Mon, 2024-10-28 at 11:54 -0400, Luiz Augusto von Dentz wrote: > Hi Bastien, > > On Mon, Oct 28, 2024 at 11:35 AM Bastien Nocera <hadess@xxxxxxxxxx> > wrote: > > > > On Thu, 2024-10-24 at 12:08 -0400, Luiz Augusto von Dentz wrote: > > > Hi Bastien, > > > > > > On Tue, Oct 22, 2024 at 10:11 AM Bastien Nocera > > > <hadess@xxxxxxxxxx> > > > wrote: > > > > > > > > Exit after printing all the main and submenu commands. > > > > --- > > > > client/main.c | 2 ++ > > > > 1 file changed, 2 insertions(+) > > > > > > > > diff --git a/client/main.c b/client/main.c > > > > index f60bef1a6d3a..f5ed9f9f5297 100644 > > > > --- a/client/main.c > > > > +++ b/client/main.c > > > > @@ -3193,6 +3193,8 @@ int main(int argc, char *argv[]) > > > > assistant_add_submenu(); > > > > bt_shell_set_prompt(PROMPT_OFF, NULL); > > > > > > > > + bt_shell_handle_non_interactive_help(); > > > > + > > > > if (agent_option) > > > > auto_register_agent = g_strdup(agent_option); > > > > else > > > > -- > > > > 2.47.0 > > > > > > > > > > Having some thoughts about how to do this is more clean way, > > > perhaps > > > we should do this as part of bt_shell_run and then introduce .run > > > callback to bt_shell_menu so it is called as part of > > > bt_shell_run, > > > under the .run callback the menu can place e.g. DBUS connection > > > setup, > > > etc, but before it reaches that we can check if it just a help > > > pending. > > > > We need to: > > 1) set the top menu > > 2) populate the submenus without any D-Bus IO > > 3) turn off the prompt > > 4) print the help and exit if that's what was requested > > 5) setup IO for submenus > > 6) run the mainloop > > > > I guess I could do 2) with a callback from bt_shell_set_menu() > > and then do 4) and 5) from a bt_shell_run() callback. > > Yep. > > > Is that what you expected? > > Do you have preferred names for the callback functions? > > Id call it .run since it should be the result of bt_shell_run > > > I think that we can still use the function split from 3/7, did you > > have > > a better name for the functions? > > Not sure I follow, there will be a split between adding submenus and > .run to achieve the 2 stages, or are you talking about some other > split? We still need to split the functions called in .run between the bits that populate the submenu, and the bits that will make D-Bus I/O, so patch number 3 still needs to be exist. Is assistant_add_submenu() and assistant_enable_submenu() OK, or did you want a different name?