settings.rs

 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}