From adf14510b00929aaee85ccb8dedf9164878a0164 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 5 Jun 2026 01:22:46 +0900 Subject: feat(downloader): wire ArchiveDownloader extraction and Path/Zip overrides Implement ArchiveDownloader for Zip/Tar/Gzip/Xz/Phar/Rar so install() extracts the archive (extract + rename) instead of doing FileDownloader's plain file rename, and route install/prepare/cleanup through the mixin. ArchiveDownloader::extract becomes &mut self to match the concrete implementations. Route ZipDownloader's bespoke download() (unzip-command static init) and PathDownloader's symlink/junction/mirror download/install/remove through the DownloaderInterface trait (path: String -> &str). Co-Authored-By: Claude Opus 4.8 --- crates/shirabe/src/downloader/archive_downloader.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/shirabe/src/downloader/archive_downloader.rs') diff --git a/crates/shirabe/src/downloader/archive_downloader.rs b/crates/shirabe/src/downloader/archive_downloader.rs index f2ec719..61ecfd1 100644 --- a/crates/shirabe/src/downloader/archive_downloader.rs +++ b/crates/shirabe/src/downloader/archive_downloader.rs @@ -24,7 +24,7 @@ pub trait ArchiveDownloader { fn cleanup_executed_mut(&mut self) -> &mut IndexMap; async fn extract( - &self, + &mut self, package: PackageInterfaceHandle, file: &str, path: &str, -- cgit v1.3.1