Added loop for retrying failed downloads

This commit is contained in:
sebastian
2024-08-24 11:42:12 -05:00
parent 12e9f298fb
commit efd2f63886

View File

@@ -258,6 +258,10 @@ async fn update_dir(
fs::create_dir_all(parent).unwrap(); fs::create_dir_all(parent).unwrap();
} }
} }
// Prompt user to retry downloads if they fail
let mut download_complete : bool = false;
while !download_complete {
if let Err(err) = http_async::download_file_progress( if let Err(err) = http_async::download_file_progress(
&client, &client,
pb, pb,
@@ -267,8 +271,15 @@ async fn update_dir(
) )
.await .await
{ {
println!("Failed to download file {}, retry? (Y/n)", file_path.clone().display());
let input = misc::stdin().to_ascii_lowercase();
if input == "n" {
panic!("{err}"); panic!("{err}");
}
}; };
download_complete = true;
}
let hash = misc::file_blake3(&file_path).unwrap(); let hash = misc::file_blake3(&file_path).unwrap();
hashes.insert(file_name.to_owned(), hash.to_lowercase()); hashes.insert(file_name.to_owned(), hash.to_lowercase());
#[cfg(unix)] #[cfg(unix)]