aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/install.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-24 01:00:48 +0900
committernsfisis <nsfisis@gmail.com>2026-02-24 01:00:48 +0900
commit64ed53cf184fb05cbfe9f0336bc8695ff0e800f8 (patch)
treecea8c1854c5c7bf0fcffcaf175f1bf188d9f8904 /crates/mozart/src/commands/install.rs
parentd9858fbd322ce20de84f44ce67ae11edf081578c (diff)
downloadphp-mozart-64ed53cf184fb05cbfe9f0336bc8695ff0e800f8.tar.gz
php-mozart-64ed53cf184fb05cbfe9f0336bc8695ff0e800f8.tar.zst
php-mozart-64ed53cf184fb05cbfe9f0336bc8695ff0e800f8.zip
fix(cache): enable dist archive caching for all commands
files_cache was Option<&Cache> and install_from_lock always passed None, so downloaded zip/tar archives were never cached. Make the parameter non-optional (&Cache) and wire it through every command that downloads dist archives (install, update, require, remove, create-project, archive). The Cache internally respects --no-cache via its enabled flag, so the Option wrapper was unnecessary. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands/install.rs')
-rw-r--r--crates/mozart/src/commands/install.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/crates/mozart/src/commands/install.rs b/crates/mozart/src/commands/install.rs
index 6eedd05..477253c 100644
--- a/crates/mozart/src/commands/install.rs
+++ b/crates/mozart/src/commands/install.rs
@@ -119,6 +119,8 @@ pub struct InstallConfig {
pub download_only: bool,
/// Prefer installing from VCS source rather than dist archives.
pub prefer_source: bool,
+ /// Disable the files cache entirely.
+ pub no_cache: bool,
}
impl Default for InstallConfig {
@@ -136,6 +138,7 @@ impl Default for InstallConfig {
apcu_autoloader_prefix: None,
download_only: false,
prefer_source: false,
+ no_cache: false,
}
}
}
@@ -356,6 +359,9 @@ pub async fn install_from_lock(
config: &InstallConfig,
console: &mozart_core::console::Console,
) -> anyhow::Result<()> {
+ let cache_config = mozart_registry::cache::build_cache_config(config.no_cache);
+ let files_cache = mozart_registry::cache::Cache::files(&cache_config);
+
let dev_mode = config.dev_mode;
// Step 1: Determine which packages to install
@@ -492,7 +498,7 @@ pub async fn install_from_lock(
vendor_dir,
&pkg.name,
Some(&mut progress),
- None,
+ &files_cache,
)
.await?;
@@ -697,6 +703,7 @@ pub async fn execute(
apcu_autoloader_prefix: args.apcu_autoloader_prefix.clone(),
download_only: args.download_only,
prefer_source,
+ no_cache: cli.no_cache,
},
console,
)