MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / resolve_server_mut

Method resolve_server_mut

atomic-config/src/lib.rs:326–352  ·  view source on GitHub ↗

Resolve the effective server config mutably, honouring the optional name override. Mirrors the resolution order of [`resolve_server`](Self::resolve_server) so that writes (e.g. `atomic org set`, `atomic workspace set`) land on the same profile that reads resolve to: 1. `server_override` (from `--server ` CLI flag) 2. `default_server` (from `~/.atomic/config.toml`) 3. Legacy `server` block

(
        &mut self,
        server_override: Option<&str>,
    )

Source from the content-addressed store, hash-verified

324 /// Returns the mutable profile plus its name (`Some` for a named profile,
325 /// `None` for the legacy block).
326 pub fn resolve_server_mut(
327 &mut self,
328 server_override: Option<&str>,
329 ) -> Result<(&mut ServerConfig, Option<String>), String> {
330 // Determine which profile name to target, if any. We resolve the name
331 // first (immutable borrow) so the mutable borrow below is unambiguous.
332 let name = if let Some(name) = server_override {
333 Some(name.to_string())
334 } else {
335 self.default_server.clone()
336 };
337
338 match name {
339 Some(name) => {
340 let profile = self.servers.get_mut(&name).ok_or_else(|| {
341 format!(
342 "Server profile '{}' not found. \
343 Use 'atomic server list' to see available profiles, \
344 or 'atomic server add {0} <url>' to create it.",
345 name
346 )
347 })?;
348 Ok((profile, Some(name)))
349 }
350 None => Ok((&mut self.server, None)),
351 }
352 }
353}
354
355/// Color output preference

Calls 2

get_mutMethod · 0.80
cloneMethod · 0.45