Remove a server profile.
(&self, remove: &ServerRemove)
| 417 | |
| 418 | /// Remove a server profile. |
| 419 | fn remove_server(&self, remove: &ServerRemove) -> CliResult<()> { |
| 420 | let mut config = GlobalConfig::load() |
| 421 | .map_err(|e| CliError::Internal(anyhow::anyhow!("Failed to load config: {}", e)))?; |
| 422 | |
| 423 | if config.servers.remove(&remove.name).is_none() { |
| 424 | return Err(CliError::InvalidArgument { |
| 425 | message: format!("Server profile '{}' not found.", remove.name), |
| 426 | }); |
| 427 | } |
| 428 | |
| 429 | // Clear default_server if it pointed to the removed profile |
| 430 | if config.default_server.as_deref() == Some(&remove.name) { |
| 431 | config.default_server = None; |
| 432 | println!( |
| 433 | "Note: '{}' was the active server. Reverted to legacy [server] block.", |
| 434 | remove.name |
| 435 | ); |
| 436 | } |
| 437 | |
| 438 | config |
| 439 | .save() |
| 440 | .map_err(|e| CliError::Internal(anyhow::anyhow!("Failed to save config: {}", e)))?; |
| 441 | |
| 442 | print_success(&format!("Server profile '{}' removed", remove.name)); |
| 443 | Ok(()) |
| 444 | } |
| 445 | |
| 446 | /// Bind (or clear) an identity for a server profile. |
| 447 | fn set_identity_for_server(&self, cmd: &ServerSetIdentity) -> CliResult<()> { |
no test coverage detected