diff --git a/Cargo.lock b/Cargo.lock index 0949947..782a89a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2422,7 +2422,7 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rooz" -version = "0.150.3" +version = "0.150.4" dependencies = [ "age", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 4d44815..d48db2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rooz" -version = "0.150.3" +version = "0.150.4" edition = "2024" [dependencies] diff --git a/src/cmd/update.rs b/src/cmd/update.rs index 1dfe010..cc6189e 100644 --- a/src/cmd/update.rs +++ b/src/cmd/update.rs @@ -42,6 +42,7 @@ impl<'a> WorkspaceApi<'a> { let format = FileFormat::from_path(config_source); let config_path = ConfigPath::from_str(&config_source)?; let mut original_body = self.config.read(workspace_key, &ConfigType::Body).await?; + let mut pre_merged: Option = None; if !interactive { match &config_path { @@ -62,13 +63,16 @@ impl<'a> WorkspaceApi<'a> { .await?; if let Some(cb) = result { original_body = cb.body; + pre_merged = cb.merged; }; } }; } - let mut original_config = - RoozCfg::deserialize_config(&original_body, format)?.unwrap(); + let mut original_config = match pre_merged { + Some(merged) => merged, + None => RoozCfg::deserialize_config(&original_body, format)?.unwrap(), + }; let config_to_apply = if interactive { let identity = self.api.get_system_config().await?.age_identity()?;