1use crate::app::EXIT_RUNTIME;
8use crate::session_driver::RemoteDriver;
9use crate::tui_shell::run_driver_tui;
10
11pub async fn run(addr: &str, token: Option<&str>) -> i32 {
13 let driver = match RemoteDriver::connect(addr, token).await {
14 Ok(driver) => driver,
15 Err(error) => {
16 eprintln!("error: {error}");
17 return EXIT_RUNTIME;
18 }
19 };
20 let code = match run_driver_tui(&driver, addr).await {
21 Ok(()) => 0,
22 Err(error) => {
23 eprintln!("error: {error}");
24 EXIT_RUNTIME
25 }
26 };
27 driver.shutdown().await;
28 code
29}