summaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs16
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")