added a server remove command

This commit is contained in:
2026-08-17 13:44:35 -05:00
parent 9e79966434
commit fa4b518437
2 changed files with 25 additions and 2 deletions
+9 -1
View File
@@ -501,7 +501,15 @@ pub fn run_tui(
println!("todo"); println!("todo");
} }
ToolMessage::DisconnectServer => { ToolMessage::DisconnectServer => {
println!("todo"); if let Some(server) = state.servers.get(state.selected_server) {
if let Ok(mut lock) = server.lock() {
lock.action_que.push("disconnect".to_string());
let _ = state.main_tx.send(ToolMessage::Input((
0,
format!("server_remove_confim {}", state.selected_server),
)));
}
}
} }
ToolMessage::ServerBrokerExit => { ToolMessage::ServerBrokerExit => {
state.server_broker_running = false; state.server_broker_running = false;
+16 -1
View File
@@ -11,7 +11,7 @@ use std::io::{self, BufRead, BufReader, Read, Write};
use std::net::IpAddr; use std::net::IpAddr;
use std::net::TcpStream; use std::net::TcpStream;
use std::path::PathBuf; use std::path::PathBuf;
use std::process::{Command, Stdio}; use std::process::{Command, CommandArgs, Stdio};
use std::sync::mpsc::Receiver; use std::sync::mpsc::Receiver;
use std::sync::{Arc, Mutex, mpsc::Sender, mpsc::channel}; use std::sync::{Arc, Mutex, mpsc::Sender, mpsc::channel};
use std::time::Duration; use std::time::Duration;
@@ -596,6 +596,21 @@ impl AppState {
} }
}); });
} }
"remove_server" => {
let _ = self.main_tx.send(ToolMessage::DisconnectServer);
}
"server_remove_confim" => {
let args = command_args.unwrap();
let id = args.trim().parse::<usize>().unwrap();
self.servers.remove(id);
if self.selected_server == id && self.selected_server >= 1 {
let _ = self.main_tx.send(ToolMessage::Output((
0,
format!("[success] server {} removed!", self.selected_server),
)));
self.selected_server = self.selected_server - 1;
}
}
"select_server" => { "select_server" => {
self.prompt.action = Some(ToolMessage::SelectServer); self.prompt.action = Some(ToolMessage::SelectServer);
self.prompt.num_responses = 1; self.prompt.num_responses = 1;