summaryrefslogtreecommitdiff
path: root/src/cmd/restore.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/restore.rs')
-rw-r--r--src/cmd/restore.rs9
1 files changed, 6 insertions, 3 deletions
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())?;
}