diff --git a/src/modes/status.rs b/src/modes/status.rs index 72948cf..83f4615 100644 --- a/src/modes/status.rs +++ b/src/modes/status.rs @@ -137,9 +137,27 @@ fn build_meta_plugin_table() -> Table { let is_default = meta_plugin_type == default_type; // Get program info for display purposes - let meta_plugin_program: MetaPluginProgram = match &META_PLUGIN_PROGRAMS[meta_plugin_type.clone()] { - Some(meta_plugin_program) => meta_plugin_program.clone(), - None => MetaPluginProgram::new("", vec![], "".to_string(), false), + let meta_plugin_program: Option = META_PLUGIN_PROGRAMS[meta_plugin_type.clone()].clone(); + + // Determine what implementation will actually be used + let (binary_display, args_display) = match meta_plugin_type { + // For internal plugins, always show as internal + MetaPluginType::DigestSha256 | MetaPluginType::ReadTime | MetaPluginType::ReadRate => { + ("".to_string(), "".to_string()) + }, + // For program-based plugins, show program info if supported, otherwise show as not found + _ => { + match &meta_plugin_program { + Some(program) => { + if program.supported { + (program.program.clone(), program.args.join(" ")) + } else { + ("".to_string(), "".to_string()) + } + }, + None => ("".to_string(), "".to_string()), + } + } }; meta_plugin_table.add_row(Row::new(vec![ @@ -152,13 +170,8 @@ fn build_meta_plugin_table() -> Table { true => Cell::new("Yes").with_style(Attr::ForegroundColor(color::GREEN)), false => Cell::new("No"), }, - match meta_plugin_program.program.is_empty() && is_supported { - true => { - Cell::new("").with_style(Attr::ForegroundColor(color::BRIGHT_BLACK)) - } - false => Cell::new(&meta_plugin_program.program), - }, - Cell::new(&meta_plugin_program.args.join(" ")), + Cell::new(&binary_display), + Cell::new(&args_display), Cell::new(&meta_plugin.meta_name()), ])); }