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>,
)
| 241 | /// Returns `(server_config, Option<name>)` — the name is `Some` when a |
| 242 | /// named profile was resolved, `None` for the legacy block. |
| 243 | pub fn resolve_server<'a>( |
| 244 | &'a self, |
| 245 | server_override: Option<&'a str>, |
| 246 | ) -> Result<(&'a ServerConfig, Option<&'a str>), String> { |
| 247 | // 1. Explicit --server flag |
| 248 | if let Some(name) = server_override { |
| 249 | return self |
| 250 | .servers |
| 251 | .get(name) |
| 252 | .map(|s| (s, Some(name))) |
| 253 | .ok_or_else(|| { |
| 254 | format!( |
| 255 | "Server profile '{}' not found. \ |
| 256 | Use 'atomic server list' to see available profiles, \ |
| 257 | or 'atomic server add {0} <url>' to create it.", |
| 258 | name |
| 259 | ) |
| 260 | }); |
| 261 | } |
| 262 | |
| 263 | // 2. Configured default server name |
| 264 | if let Some(ref name) = self.default_server { |
| 265 | return self |
| 266 | .servers |
| 267 | .get(name.as_str()) |
| 268 | .map(|s| (s, Some(name.as_str()))) |
| 269 | .ok_or_else(|| { |
| 270 | format!( |
| 271 | "Default server profile '{}' not found in servers map. \ |
| 272 | Run 'atomic server set <name>' to fix.", |
| 273 | name |
| 274 | ) |
| 275 | }); |
| 276 | } |
| 277 | |
| 278 | // 3. Legacy [server] block |
| 279 | Ok((&self.server, None)) |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | /// Color output preference |
no test coverage detected