aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/dump_autoload.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-23 01:23:40 +0900
committernsfisis <nsfisis@gmail.com>2026-02-23 01:23:40 +0900
commitc7a5859e1770dbc7cbc7cb1785c34b880162dfac (patch)
tree58081330c415776c9020771f12227889abcffa12 /crates/mozart/src/commands/dump_autoload.rs
parent7372dc668476cde4bcb789e586cb9a65af1afca0 (diff)
downloadphp-mozart-c7a5859e1770dbc7cbc7cb1785c34b880162dfac.tar.gz
php-mozart-c7a5859e1770dbc7cbc7cb1785c34b880162dfac.tar.zst
php-mozart-c7a5859e1770dbc7cbc7cb1785c34b880162dfac.zip
fix(global): add ~/.composer fallback, XDG auto-detection, and no-arg handling
Rewrite composer_home() with Composer-compatible resolution: detect XDG environment (any XDG_* var or /etc/xdg), prefer existing directories, and fall back to ~/.composer for legacy systems. Consolidate duplicate composer_home_dir() from global.rs into shared config_helpers. Accept no subcommand gracefully with a helpful error instead of a parse error. Co-Authored-By: Claude Opus 4.6 <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, 9 insertions, 8 deletions
diff --git a/crates/mozart/src/commands/dump_autoload.rs b/crates/mozart/src/commands/dump_autoload.rs
index 0828288..ca559f8 100644
--- a/crates/mozart/src/commands/dump_autoload.rs
+++ b/crates/mozart/src/commands/dump_autoload.rs
@@ -71,14 +71,15 @@ pub async fn execute(
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);
- }
+ && 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);
+ }
let optimize = args.optimize
|| composer_config