diff options
Diffstat (limited to 'src/client.rs')
-rw-r--r-- | src/client.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/client.rs b/src/client.rs index fb25009..97b4c61 100644 --- a/src/client.rs +++ b/src/client.rs @@ -39,6 +39,22 @@ impl ObnamClient { }) } + pub fn version() -> Result<String, ObnamClientError> { + let output = Command::new("obnam") + .arg("--version") + .output() + .map_err(ObnamClientError::Run)?; + if output.status.code() != Some(0) { + eprintln!("{}", String::from_utf8_lossy(&output.stdout)); + eprintln!("{}", String::from_utf8_lossy(&output.stderr)); + std::process::exit(1); + } + + let v = String::from_utf8_lossy(&output.stdout); + let v = v.strip_suffix('\n').or(Some(&v)).unwrap().to_string(); + Ok(v) + } + pub fn run(&self, args: &[&str]) -> Result<String, ObnamClientError> { let output = Command::new("obnam") .arg("--config") |