diff options
Diffstat (limited to 'src/cmd')
-rw-r--r-- | src/cmd/list_files.rs | 3 | ||||
-rw-r--r-- | src/cmd/restore.rs | 9 | ||||
-rw-r--r-- | src/cmd/show_gen.rs | 20 |
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()?); |