aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/depends.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/mozart/src/commands/depends.rs')
-rw-r--r--crates/mozart/src/commands/depends.rs67
1 files changed, 12 insertions, 55 deletions
diff --git a/crates/mozart/src/commands/depends.rs b/crates/mozart/src/commands/depends.rs
index 514ce11..9324b82 100644
--- a/crates/mozart/src/commands/depends.rs
+++ b/crates/mozart/src/commands/depends.rs
@@ -1,5 +1,4 @@
use clap::Args;
-use std::path::PathBuf;
#[derive(Args)]
pub struct DependsArgs {
@@ -24,58 +23,16 @@ pub async fn execute(
cli: &super::Cli,
console: &mozart_core::console::Console,
) -> anyhow::Result<()> {
- let working_dir = match &cli.working_dir {
- Some(dir) => PathBuf::from(dir),
- None => std::env::current_dir()?,
- };
-
- let packages = super::dependency::load_packages(&working_dir, args.locked)?;
-
- if packages.is_empty() {
- console.write_error(
- "No dependencies installed. Try running mozart install or update, or use --locked.",
- );
- return Err(mozart_core::exit_code::bail_silent(
- mozart_core::exit_code::GENERAL_ERROR,
- ));
- }
-
- let target = args.package.to_lowercase();
-
- // Verify the target package is known
- let target_known = packages.iter().any(|p| p.name.to_lowercase() == target);
- if !target_known && mozart_core::platform::is_platform_package(&target) {
- anyhow::bail!(
- "Could not find platform package \"{}\". Is PHP available?",
- args.package
- );
- }
- if !target_known {
- anyhow::bail!(
- "Could not find package \"{}\" in your project",
- args.package
- );
- }
-
- let recursive = args.tree || args.recursive;
- let needles = vec![target];
- let results = super::dependency::get_dependents(&packages, &needles, None, false, recursive)?;
-
- if results.is_empty() {
- console.info(&format!(
- "There is no installed package depending on \"{}\"",
- args.package
- ));
- return Err(mozart_core::exit_code::bail_silent(
- mozart_core::exit_code::GENERAL_ERROR,
- ));
- }
-
- if args.tree {
- super::dependency::print_tree(&results, 0, console);
- } else {
- super::dependency::print_table(&results, console);
- }
-
- Ok(())
+ super::dependency::do_execute(
+ cli,
+ console,
+ super::dependency::DoExecuteArgs {
+ package: &args.package,
+ version: None,
+ recursive: args.recursive,
+ tree: args.tree,
+ locked: args.locked,
+ inverted: false,
+ },
+ )
}