diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-10 23:58:26 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-10 23:58:26 +0900 |
| commit | 8871b923fa3df1935c263db155cb8bc3d59705cd (patch) | |
| tree | 4c080d383c30a0d92229f9b411f1d94976a6e707 /crates/mozart-core/src/repository | |
| parent | 59bab6efee41a196b0d9d392167c536abbe068ba (diff) | |
| download | php-mozart-8871b923fa3df1935c263db155cb8bc3d59705cd.tar.gz php-mozart-8871b923fa3df1935c263db155cb8bc3d59705cd.tar.zst php-mozart-8871b923fa3df1935c263db155cb8bc3d59705cd.zip | |
refactor(downloader): turn DownloadManager into downloader registry
Reshape DownloadManager from a hard-coded VCS match into a registry of
DownloaderInterface instances keyed by source type, mirroring
Composer's DownloadManager — with prefer-source/dist preferences, an
IO handle, and a files cache. ArchiveManager now resolves dist
sources through a shared DownloadManager instead of calling
download_dist directly, and Composer::require / try_load take an IO
so it flows through the factory wiring.
Diffstat (limited to 'crates/mozart-core/src/repository')
| -rw-r--r-- | crates/mozart-core/src/repository/downloader.rs | 2 | ||||
| -rw-r--r-- | crates/mozart-core/src/repository/installer_executor/filesystem.rs | 10 |
2 files changed, 4 insertions, 8 deletions
diff --git a/crates/mozart-core/src/repository/downloader.rs b/crates/mozart-core/src/repository/downloader.rs index 56b3652..f2e33a7 100644 --- a/crates/mozart-core/src/repository/downloader.rs +++ b/crates/mozart-core/src/repository/downloader.rs @@ -80,7 +80,7 @@ impl DownloadProgress { /// Downloaded bytes are cached by URL in `files_cache`; cache hits skip the network request /// entirely. #[tracing::instrument(skip(expected_shasum, progress, files_cache))] -pub async fn download_dist( +pub(crate) async fn download_dist( url: &str, expected_shasum: Option<&str>, progress: Option<&mut DownloadProgress>, diff --git a/crates/mozart-core/src/repository/installer_executor/filesystem.rs b/crates/mozart-core/src/repository/installer_executor/filesystem.rs index 2b34e02..05143a0 100644 --- a/crates/mozart-core/src/repository/installer_executor/filesystem.rs +++ b/crates/mozart-core/src/repository/installer_executor/filesystem.rs @@ -146,22 +146,18 @@ fn install_from_source( match source_type { "git" => { let process = crate::vcs::process::ProcessExecutor::new(); - let git_util = - crate::vcs::util::git::GitUtil::new(process, vendor_dir.join(".cache").join("git")); - let downloader = GitDownloader::new(git_util); + let downloader = GitDownloader::new(process, vendor_dir.join(".cache").join("git")); downloader.download(url, reference, &target)?; downloader.install(url, reference, &target)?; } "svn" => { let process = crate::vcs::process::ProcessExecutor::new(); - let svn_util = crate::vcs::util::svn::SvnUtil::new(process); - let downloader = SvnDownloader::new(svn_util); + let downloader = SvnDownloader::new(process); downloader.install(url, reference, &target)?; } "hg" => { let process = crate::vcs::process::ProcessExecutor::new(); - let hg_util = crate::vcs::util::hg::HgUtil::new(process); - let downloader = HgDownloader::new(hg_util); + let downloader = HgDownloader::new(process); downloader.install(url, reference, &target)?; } _ => { |
