Skip to content

Commit

Permalink
cli: handle EPIPE for version subcommand
Browse files Browse the repository at this point in the history
EPIPE handling was added recently via {e}println_nopipe() macros, but
wasn't used for the "version" subcommand.  This replaces println()
calls with println_nopipe().

Before:
```
➜  oxide.rs git:(main) ./target/debug/oxide version | head -1
Oxide CLI 0.6.1+20240710.0
➜  oxide.rs git:(main) ./target/debug/oxide version | a
zsh: command not found: a
thread 'tokio-runtime-worker' panicked at library/std/src/io/stdio.rs:1021:9:
failed printing to stdout: Broken pipe (os error 32)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at cli/src/main.rs:105:10:
called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(9), ...)
➜  oxide.rs git:(main)
```

After:
```
➜  oxide.rs git:(trey/epipe_version) ./target/debug/oxide version | head -1
Oxide CLI 0.6.1+20240710.0
➜  oxide.rs git:(trey/epipe_version) ./target/debug/oxide version | a
zsh: command not found: a
➜  oxide.rs git:(trey/epipe_version)
```

Fixes: #773

Signed-off-by: Trey Aspelund <[email protected]>
  • Loading branch information
taspelund committed Aug 2, 2024
1 parent 9f35461 commit 1891e12
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions cli/src/cmd_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use async_trait::async_trait;
use clap::Parser;
use oxide::Client;

use crate::println_nopipe;
use crate::{context::Context, RunnableCmd};

pub mod built_info {
Expand All @@ -27,9 +28,9 @@ impl RunnableCmd for CmdVersion {
let cli_version = built_info::PKG_VERSION;
let api_version = Client::new("").api_version();

println!("Oxide CLI {}", cli_version);
println_nopipe!("Oxide CLI {}", cli_version);

println!(
println_nopipe!(
"Built from commit: {} {}",
built_info::GIT_COMMIT_HASH.unwrap(),
if matches!(built_info::GIT_DIRTY, Some(true)) {
Expand All @@ -39,7 +40,7 @@ impl RunnableCmd for CmdVersion {
}
);

println!("Oxide API: {}", api_version);
println_nopipe!("Oxide API: {}", api_version);

Ok(())
}
Expand Down

0 comments on commit 1891e12

Please sign in to comment.