diff --git a/src/config.rs b/src/config.rs index 44d49c8c..79123bce 100644 --- a/src/config.rs +++ b/src/config.rs @@ -29,6 +29,7 @@ pub enum Step { Emacs, Gem, Node, + Composer, Sdkman, Remotes, Rustup, diff --git a/src/main.rs b/src/main.rs index 45a5a972..eff02749 100644 --- a/src/main.rs +++ b/src/main.rs @@ -306,9 +306,12 @@ fn run() -> Result<()> { if config.should_run(Step::Node) { runner.execute("NPM", || node::run_npm_upgrade(&base_dirs, run_type))?; - runner.execute("composer", || generic::run_composer_update(&base_dirs, run_type))?; runner.execute("yarn", || node::yarn_global_update(run_type))?; } + + if config.should_run(Step::Composer) { + runner.execute("composer", || generic::run_composer_update(&base_dirs, run_type))?; + } #[cfg(not(any( target_os = "freebsd", diff --git a/src/steps/generic.rs b/src/steps/generic.rs index 987a6466..97cb7d5c 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -187,10 +187,11 @@ pub fn run_composer_update(base_dirs: &BaseDirs, run_type: RunType) -> Result<() print_separator("Composer"); - run_type.execute(&composer).args(&["global", "update"]).check_run()?; - - if let Some(valet) = utils::which("valet") { - run_type.execute(&valet).arg("install").check_run()?; + let output = Command::new(&composer).args(&["global", "update"]).check_output()?; + if output.contains("valet") { + if let Some(valet) = utils::which("valet") { + run_type.execute(&valet).arg("install").check_run()?; + } } Ok(())