diff --git a/src/modes/save.rs b/src/modes/save.rs index 31937e6..65ca71b 100644 --- a/src/modes/save.rs +++ b/src/modes/save.rs @@ -47,13 +47,23 @@ fn setup_compression_and_plugins( for meta_plugin in meta_plugins.iter_mut() { let plugin_name = meta_plugin.meta_name(); if let Some(config) = meta_plugin_configs.iter().find(|c| c.name == plugin_name) { - // Configure outputs first - if let Err(e) = meta_plugin.configure_outputs(&config.outputs.iter().map(|(k, v)| (k.clone(), serde_yaml::Value::String(v.clone()))).collect()) { + // Start with default outputs and options, then apply configuration on top + let mut configured_outputs = meta_plugin.outputs().clone(); + for (key, value) in &config.outputs { + configured_outputs.insert(key.clone(), serde_yaml::Value::String(value.clone())); + } + + let mut configured_options = meta_plugin.default_options(); + for (key, value) in &config.options { + configured_options.insert(key.clone(), value.clone()); + } + + // Apply the combined configuration + if let Err(e) = meta_plugin.configure_outputs(&configured_outputs) { eprintln!("Warning: Failed to configure outputs for meta plugin '{}': {}", plugin_name, e); } - // Then configure with options - if let Err(e) = meta_plugin.configure_options(&config.options) { + if let Err(e) = meta_plugin.configure_options(&configured_options) { eprintln!("Warning: Failed to configure options for meta plugin '{}': {}", plugin_name, e); } }