aboutsummaryrefslogtreecommitdiff
path: root/src/cli
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli')
-rw-r--r--src/cli/completion.rs2
-rw-r--r--src/cli/spec.rs14
2 files changed, 12 insertions, 4 deletions
diff --git a/src/cli/completion.rs b/src/cli/completion.rs
index f049175d..02391ec8 100644
--- a/src/cli/completion.rs
+++ b/src/cli/completion.rs
@@ -35,8 +35,10 @@ pub(super) fn run_completion_command(args: &[String]) -> std::io::Result<i32> {
let script = String::from_utf8(output).map_err(|err| {
std::io::Error::new(std::io::ErrorKind::InvalidData, err.utf8_error())
})?;
+ crate::platform::begin_cli_output();
std::io::stdout().write_all(space_separated_zsh_long_options(&script).as_bytes())?;
} else {
+ crate::platform::begin_cli_output();
generate(shell, &mut command, "herdr", &mut std::io::stdout());
}
Ok(0)
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(" ")
);