summaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/list_files.rs3
-rw-r--r--src/cmd/restore.rs9
-rw-r--r--src/cmd/show_gen.rs20
3 files changed, 20 insertions, 12 deletions
diff --git a/src/cmd/list_files.rs b/src/cmd/list_files.rs
index 22b102e..c5191f7 100644
--- a/src/cmd/list_files.rs
+++ b/src/cmd/list_files.rs
@@ -22,7 +22,8 @@ impl ListFiles {
let gen_id: String = genlist.resolve(&self.gen_id)?;
let gen = client.fetch_generation(&gen_id, temp.path())?;
- for file in gen.files()? {
+ for file in gen.files()?.iter()? {
+ let file = file?;
println!("{}", format_entry(&file.entry(), file.reason()));
}
diff --git a/src/cmd/restore.rs b/src/cmd/restore.rs
index a321e80..4de0830 100644
--- a/src/cmd/restore.rs
+++ b/src/cmd/restore.rs
@@ -40,7 +40,8 @@ impl Restore {
let gen = client.fetch_generation(&gen_id, temp.path())?;
info!("restoring {} files", gen.file_count()?);
let progress = create_progress_bar(gen.file_count()?, true);
- for file in gen.files()? {
+ for file in gen.files()?.iter()? {
+ let file = file?;
match file.reason() {
Reason::FileError => (),
_ => restore_generation(
@@ -53,7 +54,8 @@ impl Restore {
)?,
}
}
- for file in gen.files()? {
+ for file in gen.files()?.iter()? {
+ let file = file?;
if file.entry().is_dir() {
restore_directory_metadata(file.entry(), &self.to)?;
}
@@ -170,7 +172,8 @@ fn restore_regular(
std::fs::create_dir_all(parent)?;
{
let mut file = std::fs::File::create(path)?;
- for chunkid in gen.chunkids(fileid)? {
+ for chunkid in gen.chunkids(fileid)?.iter()? {
+ let chunkid = chunkid?;
let chunk = client.fetch_chunk(&chunkid)?;
file.write_all(chunk.data())?;
}
diff --git a/src/cmd/show_gen.rs b/src/cmd/show_gen.rs
index ba39809..df8a030 100644
--- a/src/cmd/show_gen.rs
+++ b/src/cmd/show_gen.rs
@@ -21,16 +21,20 @@ impl ShowGeneration {
let genlist = client.list_generations()?;
let gen_id: String = genlist.resolve(&self.gen_id)?;
let gen = client.fetch_generation(&gen_id, temp.path())?;
- let files = gen.files()?;
+ let mut files = gen.files()?;
+ let mut files = files.iter()?;
- let total_bytes = files.iter().fold(0, |acc, file| {
- let e = file.entry();
- if e.kind() == FilesystemKind::Regular {
- acc + file.entry().len()
- } else {
- acc
- }
+ let total_bytes = files.try_fold(0, |acc, file| {
+ file.map(|file| {
+ let e = file.entry();
+ if e.kind() == FilesystemKind::Regular {
+ acc + e.len()
+ } else {
+ acc
+ }
+ })
});
+ let total_bytes = total_bytes?;
println!("generation-id: {}", gen_id);
println!("file-count: {}", gen.file_count()?);