aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package/archiver/archive_manager.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/package/archiver/archive_manager.rs')
-rw-r--r--crates/shirabe/src/package/archiver/archive_manager.rs30
1 files changed, 20 insertions, 10 deletions
diff --git a/crates/shirabe/src/package/archiver/archive_manager.rs b/crates/shirabe/src/package/archiver/archive_manager.rs
index 390efc4..e198a03 100644
--- a/crates/shirabe/src/package/archiver/archive_manager.rs
+++ b/crates/shirabe/src/package/archiver/archive_manager.rs
@@ -164,16 +164,26 @@ impl ArchiveManager {
filesystem.ensure_directory_exists(&source_path)?;
let download_result = (|| -> anyhow::Result<()> {
- let promise =
- self.download_manager
- .borrow()
- .download(package, &source_path, None)?;
- SyncHelper::r#await(&self.r#loop, Some(promise))?;
- let promise = self
- .download_manager
- .borrow()
- .install(package, &source_path)?;
- SyncHelper::r#await(&self.r#loop, Some(promise))?;
+ SyncHelper::r#await(
+ &self.r#loop,
+ Some(Box::pin(async {
+ self.download_manager
+ .borrow()
+ .download(package, &source_path, None)
+ .await
+ .map(|_| ())
+ })),
+ )?;
+ SyncHelper::r#await(
+ &self.r#loop,
+ Some(Box::pin(async {
+ self.download_manager
+ .borrow()
+ .install(package, &source_path)
+ .await
+ .map(|_| ())
+ })),
+ )?;
Ok(())
})();