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? > Cheers > -- Luiz Augusto von Dentz