diff options
Diffstat (limited to 'src/cli/spec.rs')
| -rw-r--r-- | src/cli/spec.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cli/spec.rs b/src/cli/spec.rs index b2b6cb03..134bf0bf 100644 --- a/src/cli/spec.rs +++ b/src/cli/spec.rs @@ -64,10 +64,14 @@ fn configure_help(command: Command, depth: usize) -> Command { pub(super) fn print_requested_help(args: &[String]) -> std::io::Result<bool> { let mut stdout = std::io::stdout().lock(); - write_requested_help(args, &mut stdout) + write_requested_help(args, &mut stdout, crate::platform::begin_cli_output) } -fn write_requested_help(args: &[String], output: &mut impl Write) -> std::io::Result<bool> { +fn write_requested_help( + args: &[String], + output: &mut impl Write, + before_write: impl FnOnce(), +) -> std::io::Result<bool> { let Some(help_index) = args .iter() .position(|arg| matches!(arg.as_str(), "--help" | "-h")) @@ -99,6 +103,7 @@ fn write_requested_help(args: &[String], output: &mut impl Write) -> std::io::Re } selected.set_bin_name(path.join(" ")); + before_write(); selected.write_long_help(&mut *output)?; writeln!(output)?; Ok(true) @@ -1083,7 +1088,7 @@ mod tests { args.push(flag.to_string()); let mut output = Vec::new(); assert!( - super::write_requested_help(&args, &mut output).unwrap(), + super::write_requested_help(&args, &mut output, || {}).unwrap(), "help was not handled for herdr {} {flag}", path.join(" ") ); @@ -1197,6 +1202,7 @@ mod tests { "--help".to_string(), ], &mut help, + || {}, ) .unwrap(); assert!(String::from_utf8(help) @@ -1304,7 +1310,7 @@ mod tests { args.push("--help".to_string()); let mut output = Vec::new(); assert!( - super::write_requested_help(&args, &mut output).unwrap(), + super::write_requested_help(&args, &mut output, || {}).unwrap(), "help was not handled for herdr {}", path.join(" ") ); |
