summaryrefslogtreecommitdiff
path: root/src/cmd/get_chunk.rs
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-01-04 18:03:04 +0000
committerLars Wirzenius <liw@liw.fi>2021-01-04 18:03:04 +0000
commit678e65c57ae983ef66d16e92965814b0f3f0d73f (patch)
tree260f2edd09047de5843a168ce59f284ac3445ce7 /src/cmd/get_chunk.rs
parent6c00201a0aaf75071388981591d76bebdc7b1f03 (diff)
parent34a9fc7cf754552b02b194f7e1186adc9414a623 (diff)
downloadobnam2-678e65c57ae983ef66d16e92965814b0f3f0d73f.tar.gz
Merge branch 'checksum' into 'main'
Checksum See merge request larswirzenius/obnam!61
Diffstat (limited to 'src/cmd/get_chunk.rs')
-rw-r--r--src/cmd/get_chunk.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/cmd/get_chunk.rs b/src/cmd/get_chunk.rs
new file mode 100644
index 0000000..bf653ff
--- /dev/null
+++ b/src/cmd/get_chunk.rs
@@ -0,0 +1,15 @@
+use crate::chunkid::ChunkId;
+use crate::client::BackupClient;
+use crate::client::ClientConfig;
+use std::io::{stdout, Write};
+
+pub fn get_chunk(config: &ClientConfig, chunk_id: &str) -> anyhow::Result<()> {
+ let client = BackupClient::new(&config.server_url)?;
+ let chunk_id: ChunkId = chunk_id.parse().unwrap();
+ let chunk = client.fetch_chunk(&chunk_id)?;
+
+ let stdout = stdout();
+ let mut handle = stdout.lock();
+ handle.write_all(chunk.data())?;
+ Ok(())
+}