File tree Expand file tree Collapse file tree 1 file changed +31
-1
lines changed
Expand file tree Collapse file tree 1 file changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -95,6 +95,13 @@ def parse_args() -> Namespace:
9595 help = "Run in non-interactive CLI mode" ,
9696 parents = [common_parser ()],
9797 )
98+ cli_parser .add_argument (
99+ "--with-server" ,
100+ action = "store_true" ,
101+ default = False ,
102+ help = "Start the rogue server alongside the CLI" ,
103+ )
104+ set_server_args (cli_parser )
98105 set_cli_args (cli_parser )
99106
100107 # TUI mode
@@ -263,7 +270,30 @@ def main() -> None:
263270 if args .mode == "server" :
264271 run_server (args , background = False )
265272 elif args .mode == "cli" :
266- exit_code = asyncio .run (run_cli (args ))
273+ server_process = None
274+ if args .with_server :
275+ try :
276+ server_process = run_server (
277+ args ,
278+ background = True ,
279+ )
280+ except Exception as e :
281+ logger .error (f"Failed to start rogue server: { e } " )
282+ sys .exit (1 )
283+ if not server_process :
284+ logger .error ("Failed to start rogue server. Exiting." )
285+ sys .exit (1 )
286+ args .rogue_server_url = f"http://{ args .host } :{ args .port } "
287+
288+ try :
289+ exit_code = asyncio .run (run_cli (args ))
290+ except Exception as e :
291+ logger .error (f"CLI execution failed: { e } " )
292+ exit_code = 1
293+ finally :
294+ if server_process :
295+ server_process .terminate ()
296+ server_process .join ()
267297 sys .exit (exit_code )
268298 elif args .mode == "tui" :
269299 if not RogueTuiInstaller ().install_rogue_tui ():
You can’t perform that action at this time.
0 commit comments