diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-12 04:08:43 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-12 04:08:43 +0900 |
| commit | 337f3c0b1505aa23e3adec52dc29d4cd27c8eec3 (patch) | |
| tree | 5b6ff78c9f4c71243bd3453b79784815519d967a /crates/shirabe | |
| parent | 4e96d8c2ad7e09f27fed6b9ec6b02f1228fa7a47 (diff) | |
| download | php-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.rs | 59 |
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) + } +} |
