aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-12 04:08:43 +0900
committernsfisis <nsfisis@gmail.com>2026-05-12 04:08:43 +0900
commit337f3c0b1505aa23e3adec52dc29d4cd27c8eec3 (patch)
tree5b6ff78c9f4c71243bd3453b79784815519d967a /crates/shirabe
parent4e96d8c2ad7e09f27fed6b9ec6b02f1228fa7a47 (diff)
downloadphp-shirabe-337f3c0b1505aa23e3adec52dc29d4cd27c8eec3.tar.gz
php-shirabe-337f3c0b1505aa23e3adec52dc29d4cd27c8eec3.tar.zst
php-shirabe-337f3c0b1505aa23e3adec52dc29d4cd27c8eec3.zip
feat(port): port DependsCommand.php
Diffstat (limited to 'crates/shirabe')
-rw-r--r--crates/shirabe/src/command/depends_command.rs59
1 files changed, 59 insertions, 0 deletions
diff --git a/crates/shirabe/src/command/depends_command.rs b/crates/shirabe/src/command/depends_command.rs
index ca24b47..36f7e22 100644
--- a/crates/shirabe/src/command/depends_command.rs
+++ b/crates/shirabe/src/command/depends_command.rs
@@ -1 +1,60 @@
//! ref: composer/src/Composer/Command/DependsCommand.php
+
+use shirabe_external_packages::symfony::console::input::input_interface::InputInterface;
+use shirabe_external_packages::symfony::console::output::output_interface::OutputInterface;
+use crate::command::base_dependency_command::BaseDependencyCommand;
+use crate::command::completion_trait::CompletionTrait;
+use crate::console::input::input_argument::InputArgument;
+use crate::console::input::input_option::InputOption;
+
+pub struct DependsCommand {
+ inner: BaseDependencyCommand,
+}
+
+impl CompletionTrait for DependsCommand {}
+
+impl DependsCommand {
+ pub fn configure(&mut self) {
+ let package_suggestions = self.suggest_installed_package(true, true);
+ self.inner
+ .set_name("depends")
+ .set_aliases(vec!["why".to_string()])
+ .set_description("Shows which packages cause the given package to be installed")
+ .set_definition(vec![
+ InputArgument::new(
+ BaseDependencyCommand::ARGUMENT_PACKAGE,
+ InputArgument::REQUIRED,
+ "Package to inspect",
+ None,
+ package_suggestions,
+ ),
+ InputOption::new(
+ BaseDependencyCommand::OPTION_RECURSIVE,
+ Some("r"),
+ InputOption::VALUE_NONE,
+ "Recursively resolves up to the root package",
+ ),
+ InputOption::new(
+ BaseDependencyCommand::OPTION_TREE,
+ Some("t"),
+ InputOption::VALUE_NONE,
+ "Prints the results as a nested tree",
+ ),
+ InputOption::new(
+ "locked",
+ None,
+ InputOption::VALUE_NONE,
+ "Read dependency information from composer.lock",
+ ),
+ ])
+ .set_help(
+ "Displays detailed information about where a package is referenced.\n\n\
+ <info>php composer.phar depends composer/composer</info>\n\n\
+ Read more at https://getcomposer.org/doc/03-cli.md#depends-why"
+ );
+ }
+
+ pub fn execute(&self, input: &dyn InputInterface, output: &dyn OutputInterface) -> i64 {
+ self.inner.do_execute(input, output)
+ }
+}