aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/dump_autoload.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-05 15:12:57 +0900
committernsfisis <nsfisis@gmail.com>2026-05-05 15:12:57 +0900
commit2ad57b7efb685040b24d93aab5b81ddfbd0ebefb (patch)
tree9ee877ed2abc055cc91f2b7120a6122917fa6998 /crates/mozart/src/commands/dump_autoload.rs
parentd4df60e70a4581aba6308f803ec7f9473d2671d8 (diff)
downloadphp-mozart-2ad57b7efb685040b24d93aab5b81ddfbd0ebefb.tar.gz
php-mozart-2ad57b7efb685040b24d93aab5b81ddfbd0ebefb.tar.zst
php-mozart-2ad57b7efb685040b24d93aab5b81ddfbd0ebefb.zip
feat(core): add Composer struct mirroring requireComposer/tryComposer
Introduce mozart_core::composer::Composer with require()/try_load() constructors and a config() accessor, modelled on PHP Composer's BaseCommand::requireComposer / tryComposer. ComposerConfig and composer_home move into mozart-core so Composer::load can resolve placeholders consistently. Migrate dump-autoload, archive, exec and run-script away from ad-hoc composer.json reads. exec and run-script now fail when composer.json is missing instead of silently falling back to "vendor/bin", matching the upstream requireComposer contract. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands/dump_autoload.rs')
-rw-r--r--crates/mozart/src/commands/dump_autoload.rs17
1 files changed, 3 insertions, 14 deletions
diff --git a/crates/mozart/src/commands/dump_autoload.rs b/crates/mozart/src/commands/dump_autoload.rs
index c35690b..ec25b54 100644
--- a/crates/mozart/src/commands/dump_autoload.rs
+++ b/crates/mozart/src/commands/dump_autoload.rs
@@ -66,20 +66,9 @@ pub async fn execute(
let vendor_dir = working_dir.join("vendor");
let dev_mode = !args.no_dev;
- // B: Read config-driven defaults from composer.json
- let composer_json_path = working_dir.join("composer.json");
- let mut composer_config = super::config::ComposerConfig::defaults();
- if composer_json_path.exists()
- && let Ok(content) = std::fs::read_to_string(&composer_json_path)
- && let Ok(value) = serde_json::from_str::<serde_json::Value>(&content)
- && let Some(cfg_obj) = value.get("config").and_then(|v| v.as_object())
- {
- let overrides: std::collections::BTreeMap<String, serde_json::Value> = cfg_obj
- .iter()
- .map(|(k, v)| (k.clone(), v.clone()))
- .collect();
- composer_config.merge(&overrides);
- }
+ // B: Load Composer state (composer.json is required for dump-autoload)
+ let composer = mozart_core::composer::Composer::require(&working_dir)?;
+ let composer_config = composer.config();
let optimize = args.optimize
|| composer_config