diff --git a/cli/main.rs b/cli/main.rs index 3368a06fc1..8ae83e735b 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -347,7 +347,8 @@ fn resolve_flags_and_init( if err.kind() == clap::error::ErrorKind::DisplayHelp || err.kind() == clap::error::ErrorKind::DisplayVersion => { - err.print().unwrap(); + // Ignore results to avoid BrokenPipe errors. + let _ = err.print(); std::process::exit(0); } Err(err) => exit_for_error(AnyError::from(err)), diff --git a/tests/specs/cli/help_and_version_broken_pipe/__test__.jsonc b/tests/specs/cli/help_and_version_broken_pipe/__test__.jsonc new file mode 100644 index 0000000000..775293571b --- /dev/null +++ b/tests/specs/cli/help_and_version_broken_pipe/__test__.jsonc @@ -0,0 +1,9 @@ +{ + "steps": [{ + "args": "task help", + "output": "help.out" + }, { + "args": "task version", + "output": "version.out" + }] +} diff --git a/tests/specs/cli/help_and_version_broken_pipe/deno.json b/tests/specs/cli/help_and_version_broken_pipe/deno.json new file mode 100644 index 0000000000..07763de468 --- /dev/null +++ b/tests/specs/cli/help_and_version_broken_pipe/deno.json @@ -0,0 +1,6 @@ +{ + "tasks": { + "help": "deno help | echo", + "version": "deno --version | echo" + } +} diff --git a/tests/specs/cli/help_and_version_broken_pipe/help.out b/tests/specs/cli/help_and_version_broken_pipe/help.out new file mode 100644 index 0000000000..58d69d2eee --- /dev/null +++ b/tests/specs/cli/help_and_version_broken_pipe/help.out @@ -0,0 +1,2 @@ +Task help deno help | echo + diff --git a/tests/specs/cli/help_and_version_broken_pipe/version.out b/tests/specs/cli/help_and_version_broken_pipe/version.out new file mode 100644 index 0000000000..75d0158447 --- /dev/null +++ b/tests/specs/cli/help_and_version_broken_pipe/version.out @@ -0,0 +1,2 @@ +Task version deno --version | echo +