refactor: remove initialize() call and use plugin outputs directly
Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
@@ -161,31 +161,19 @@ impl MetaPlugin for DigestMetaPlugin {
|
||||
|
||||
let mut metadata = Vec::new();
|
||||
|
||||
// Compute the selected hash
|
||||
// Update outputs based on the selected hash method
|
||||
if let Some(hasher) = &mut self.hasher {
|
||||
let hash_value = hasher.finalize();
|
||||
let output_name = hasher.output_name();
|
||||
|
||||
// Add the selected hash output
|
||||
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
|
||||
output_name,
|
||||
serde_yaml::Value::String(hash_value),
|
||||
&self.outputs
|
||||
) {
|
||||
metadata.push(meta_data);
|
||||
}
|
||||
// Set the selected hash output
|
||||
self.outputs.insert(output_name.to_string(), serde_yaml::Value::String(hash_value));
|
||||
|
||||
// Set all other digest outputs to None
|
||||
let all_outputs = vec!["digest_md5", "digest_sha256", "digest_sha512"];
|
||||
for output_name in all_outputs {
|
||||
if output_name != hasher.output_name() {
|
||||
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
|
||||
output_name,
|
||||
serde_yaml::Value::Null,
|
||||
&self.outputs
|
||||
) {
|
||||
metadata.push(meta_data);
|
||||
}
|
||||
self.outputs.insert(output_name.to_string(), serde_yaml::Value::Null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,47 +234,32 @@ impl MetaPlugin for HostnameMetaPlugin {
|
||||
}
|
||||
};
|
||||
|
||||
// Always process all outputs, setting disabled ones to Null
|
||||
// Update outputs based on enabled status
|
||||
// Handle hostname output
|
||||
let hostname_output_value = if hostname_enabled {
|
||||
serde_yaml::Value::String(hostname_value)
|
||||
if hostname_enabled {
|
||||
if let Some(output_value) = self.outputs.get_mut("hostname") {
|
||||
*output_value = serde_yaml::Value::String(hostname_value);
|
||||
}
|
||||
} else {
|
||||
serde_yaml::Value::Null
|
||||
};
|
||||
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
|
||||
"hostname",
|
||||
hostname_output_value,
|
||||
&self.outputs
|
||||
) {
|
||||
metadata.push(meta_data);
|
||||
self.outputs.insert("hostname".to_string(), serde_yaml::Value::Null);
|
||||
}
|
||||
|
||||
// Handle hostname_full output
|
||||
let hostname_full_output_value = if hostname_full_enabled {
|
||||
serde_yaml::Value::String(full_hostname.clone())
|
||||
if hostname_full_enabled {
|
||||
if let Some(output_value) = self.outputs.get_mut("hostname_full") {
|
||||
*output_value = serde_yaml::Value::String(full_hostname.clone());
|
||||
}
|
||||
} else {
|
||||
serde_yaml::Value::Null
|
||||
};
|
||||
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
|
||||
"hostname_full",
|
||||
hostname_full_output_value,
|
||||
&self.outputs
|
||||
) {
|
||||
metadata.push(meta_data);
|
||||
self.outputs.insert("hostname_full".to_string(), serde_yaml::Value::Null);
|
||||
}
|
||||
|
||||
// Handle hostname_short output
|
||||
let hostname_short_output_value = if hostname_short_enabled {
|
||||
serde_yaml::Value::String(short_hostname)
|
||||
if hostname_short_enabled {
|
||||
if let Some(output_value) = self.outputs.get_mut("hostname_short") {
|
||||
*output_value = serde_yaml::Value::String(short_hostname);
|
||||
}
|
||||
} else {
|
||||
serde_yaml::Value::Null
|
||||
};
|
||||
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
|
||||
"hostname_short",
|
||||
hostname_short_output_value,
|
||||
&self.outputs
|
||||
) {
|
||||
metadata.push(meta_data);
|
||||
self.outputs.insert("hostname_short".to_string(), serde_yaml::Value::Null);
|
||||
}
|
||||
|
||||
// Mark as finalized since this plugin only needs to run once
|
||||
|
||||
@@ -175,18 +175,12 @@ fn build_meta_plugins_configured_table(settings: &config::Settings) -> Option<Ta
|
||||
.map(|(k, v)| (k.clone(), serde_yaml::Value::String(v.clone())))
|
||||
.collect();
|
||||
|
||||
// Create the actual plugin with merged options
|
||||
let mut actual_plugin = get_meta_plugin(
|
||||
// Create the actual plugin with merged options - the constructor will handle setting up outputs
|
||||
let actual_plugin = get_meta_plugin(
|
||||
meta_plugin_type.clone(),
|
||||
Some(effective_options.clone()),
|
||||
Some(outputs_converted),
|
||||
);
|
||||
|
||||
// Clone the plugin to avoid modifying the original when we initialize it
|
||||
let mut plugin_for_display = actual_plugin.clone();
|
||||
// Initialize the plugin to process the options and generate the actual outputs
|
||||
// This will set disabled outputs to None
|
||||
let _ = plugin_for_display.initialize();
|
||||
|
||||
// Get the default plugin to see its default options
|
||||
let default_plugin = get_meta_plugin(
|
||||
@@ -202,8 +196,7 @@ fn build_meta_plugins_configured_table(settings: &config::Settings) -> Option<Ta
|
||||
all_options.insert(key.clone(), value.clone());
|
||||
}
|
||||
|
||||
// Convert options to a YAML string, but first make sure to show the actual values used
|
||||
// This includes any conversions we made (like "false" string to Bool(false))
|
||||
// Convert options to a YAML string
|
||||
let options_str = if all_options.is_empty() {
|
||||
"{}".to_string()
|
||||
} else {
|
||||
@@ -213,10 +206,9 @@ fn build_meta_plugins_configured_table(settings: &config::Settings) -> Option<Ta
|
||||
.to_string()
|
||||
};
|
||||
|
||||
// Show only non-null outputs from the plugin after initialization
|
||||
// This reflects which outputs would actually be generated
|
||||
// Show only non-null outputs from the plugin
|
||||
let mut enabled_output_pairs = Vec::new();
|
||||
for (key, value) in plugin_for_display.outputs() {
|
||||
for (key, value) in actual_plugin.outputs() {
|
||||
// Skip null values (disabled outputs)
|
||||
if value.is_null() {
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user