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>,
)
| 259 | /// Returns `(server_config, Option<name>)` — the name is `Some` when a |
| 260 | /// named profile was resolved, `None` for the legacy block. |
| 261 | pub fn resolve_server<'a>( |
| 262 | &'a self, |
| 263 | server_override: Option<&'a str>, |
| 264 | ) -> Result<(&'a ServerConfig, Option<&'a str>), String> { |
| 265 | // 1. Explicit --server flag |
| 266 | if let Some(name) = server_override { |
| 267 | return self |
| 268 | .servers |
| 269 | .get(name) |
| 270 | .map(|s| (s, Some(name))) |
| 271 | .ok_or_else(|| { |
| 272 | format!( |
| 273 | "Server profile '{}' not found. \ |
| 274 | Use 'atomic server list' to see available profiles, \ |
| 275 | or 'atomic server add {0} <url>' to create it.", |
| 276 | name |
| 277 | ) |
| 278 | }); |
| 279 | } |
| 280 | |
| 281 | // 2. Configured default server name |
| 282 | if let Some(ref name) = self.default_server { |
| 283 | return self |
| 284 | .servers |
| 285 | .get(name.as_str()) |
| 286 | .map(|s| (s, Some(name.as_str()))) |
| 287 | .ok_or_else(|| { |
| 288 | format!( |
| 289 | "Default server profile '{}' not found in servers map. \ |
| 290 | Run 'atomic server set <name>' to fix.", |
| 291 | name |
| 292 | ) |
| 293 | }); |
| 294 | } |
| 295 | |
| 296 | // 3. Legacy [server] block |
| 297 | Ok((&self.server, None)) |
| 298 | } |
| 299 | |
| 300 | /// Resolve the effective server config mutably, honouring the optional |
| 301 | /// name override. |
no test coverage detected