1use anyhow::Result;
2use serde_json::Value;
3
4pub fn restructure_profiles_with_settings_key(value: &mut Value) -> Result<()> {
5 let Some(root_object) = value.as_object_mut() else {
6 return Ok(());
7 };
8
9 let Some(profiles) = root_object.get_mut("profiles") else {
10 return Ok(());
11 };
12
13 let Some(profiles_map) = profiles.as_object_mut() else {
14 return Ok(());
15 };
16
17 for profile_value in profiles_map.values_mut() {
18 if profile_value
19 .as_object()
20 .is_some_and(|m| m.contains_key("settings") || m.contains_key("base"))
21 {
22 continue;
23 }
24
25 *profile_value = serde_json::json!({ "settings": profile_value });
26 }
27
28 Ok(())
29}