Resolve the effective server config, honouring the optional name override. Resolution order: 1. `server_override` (from `--server ` CLI flag) 2. `default_server` (from `~/.atomic/config.toml`) 3. Legacy `server` block Returns `(server_config, Option )` — the name is `Some` when a named profile was resolved, `None` for the legacy block.
(
&'a self,
server_override: Option<&'a str>,
)
| 286 | /// Returns `(server_config, Option<name>)` — the name is `Some` when a |
| 287 | /// named profile was resolved, `None` for the legacy block. |
| 288 | pub fn resolve_server<'a>( |
| 289 | &'a self, |
| 290 | server_override: Option<&'a str>, |
| 291 | ) -> Result<(&'a ServerConfig, Option<&'a str>), String> { |
| 292 | // 1. Explicit --server flag |
| 293 | if let Some(name) = server_override { |
| 294 | return self |
| 295 | .servers |
| 296 | .get(name) |
| 297 | .map(|s| (s, Some(name))) |
| 298 | .ok_or_else(|| { |
| 299 | format!( |
| 300 | "Server profile '{}' not found. \ |
| 301 | Use 'atomic server list' to see available profiles, \ |
| 302 | or 'atomic server add {0} <url>' to create it.", |
| 303 | name |
| 304 | ) |
| 305 | }); |
| 306 | } |
| 307 | |
| 308 | // 2. Configured default server name |
| 309 | if let Some(ref name) = self.default_server { |
| 310 | return self |
| 311 | .servers |
| 312 | .get(name.as_str()) |
| 313 | .map(|s| (s, Some(name.as_str()))) |
| 314 | .ok_or_else(|| { |
| 315 | format!( |
| 316 | "Default server profile '{}' not found in servers map. \ |
| 317 | Run 'atomic server set <name>' to fix.", |
| 318 | name |
| 319 | ) |
| 320 | }); |
| 321 | } |
| 322 | |
| 323 | // 3. Legacy [server] block |
| 324 | Ok((&self.server, None)) |
| 325 | } |
| 326 | |
| 327 | /// Resolve the effective server config mutably, honouring the optional |
| 328 | /// name override. |
no test coverage detected