diff --git a/src/common/status.rs b/src/common/status.rs index 473b61a..8b6896d 100644 --- a/src/common/status.rs +++ b/src/common/status.rs @@ -15,6 +15,7 @@ pub struct StatusInfo { pub meta_plugins: std::collections::HashMap, pub enabled_meta_plugins: Vec, pub filter_plugins: Vec, + pub configured_meta_plugins: Option>, } #[derive(serde::Serialize, serde::Deserialize, ToSchema)] diff --git a/src/modes/status.rs b/src/modes/status.rs index 9581a60..036c250 100644 --- a/src/modes/status.rs +++ b/src/modes/status.rs @@ -129,8 +129,8 @@ fn build_config_table(settings: &config::Settings) -> Table { config_table } -fn build_meta_plugins_configured_table(settings: &config::Settings) -> Option { - let meta_plugins = settings.meta_plugins.as_ref()?; +fn build_meta_plugins_configured_table(status_info: &StatusInfo) -> Option
{ + let meta_plugins = status_info.configured_meta_plugins.as_ref()?; if meta_plugins.is_empty() { return None; } @@ -297,8 +297,8 @@ pub fn mode_status( build_path_table(&status_info.paths).printstd(); println!(); - // Always try to print META PLUGINS CONFIGURED section - if let Some(meta_plugins_table) = build_meta_plugins_configured_table(settings) { + // Always try to print META PLUGINS CONFIGURED section using status_info + if let Some(meta_plugins_table) = build_meta_plugins_configured_table(&status_info) { println!("META PLUGINS CONFIGURED:"); meta_plugins_table.printstd(); println!(); @@ -310,6 +310,7 @@ pub fn mode_status( Ok(()) }, OutputFormat::Json => { + // Create a subset for status info that includes everything println!("{}", serde_json::to_string_pretty(&status_info)?); Ok(()) }, diff --git a/src/modes/status_plugins.rs b/src/modes/status_plugins.rs index 5838d2f..a1185ec 100644 --- a/src/modes/status_plugins.rs +++ b/src/modes/status_plugins.rs @@ -220,17 +220,17 @@ pub fn mode_status_plugins( Ok(()) }, OutputFormat::Json => { - // Create a subset for plugins only + // Create a subset for plugins only using status_info let plugins_info = serde_json::json!({ "meta_plugins_available": status_info.meta_plugins, - "meta_plugins_configured": settings.meta_plugins, + "meta_plugins_configured": status_info.configured_meta_plugins, "filter_plugins": status_info.filter_plugins }); println!("{}", serde_json::to_string_pretty(&plugins_info)?); Ok(()) }, OutputFormat::Yaml => { - // Create a proper structure for plugins info + // Create a proper structure for plugins info using status_info use serde_yaml::Mapping; let mut plugins_mapping = Mapping::new(); @@ -241,7 +241,7 @@ pub fn mode_status_plugins( ); // Add configured plugins if they exist - if let Some(configured_plugins) = &settings.meta_plugins { + if let Some(configured_plugins) = &status_info.configured_meta_plugins { plugins_mapping.insert( serde_yaml::Value::String("meta_plugins_configured".to_string()), serde_yaml::to_value(configured_plugins)?, diff --git a/src/services/status_service.rs b/src/services/status_service.rs index 536d1eb..fbe8c3f 100644 --- a/src/services/status_service.rs +++ b/src/services/status_service.rs @@ -39,6 +39,9 @@ impl StatusService { .map(|name| name.clone()) .collect(); + // Add configured meta plugins information + status_info.configured_meta_plugins = settings.meta_plugins.clone(); + status_info }