From 6051927c8fa32cfffa102d2a170c5a6cf747a1b9 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 9 Aug 2026 11:19:03 +0900 Subject: refactor(symfony-console): extract symfony/console into the shirabe-symfony-console crate Move `Symfony\Component\Console` out of shirabe-external-packages and into its own crate, so the path is `shirabe_symfony_console::application::Application` instead of `shirabe_external_packages::symfony::console::application::Application`. The `delegate_to_inner!` and `delegate_command_trait_impls_to_inner!` macros move with it. Co-Authored-By: Claude Opus 5 (1M context) --- crates/shirabe/src/command/base_command.rs | 72 ++++++++++++++---------------- 1 file changed, 34 insertions(+), 38 deletions(-) (limited to 'crates/shirabe/src/command/base_command.rs') diff --git a/crates/shirabe/src/command/base_command.rs b/crates/shirabe/src/command/base_command.rs index a1de9783..ceb71bf1 100644 --- a/crates/shirabe/src/command/base_command.rs +++ b/crates/shirabe/src/command/base_command.rs @@ -18,18 +18,16 @@ use crate::plugin::PluginEvents; use crate::plugin::PreCommandRunEvent; use crate::util::Platform; use indexmap::IndexMap; -use shirabe_external_packages::symfony::console::Terminal; -use shirabe_external_packages::symfony::console::command::command::{ - Command, CommandData, SetDefinitionArg, -}; -use shirabe_external_packages::symfony::console::helper::Table; -use shirabe_external_packages::symfony::console::helper::TableSeparator; -use shirabe_external_packages::symfony::console::input::InputInterface; -use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ InvalidArgumentException, LogicException, PhpClass, PhpMixed, RuntimeException, UnexpectedValueException, count, explode, in_array_strict, is_string, }; +use shirabe_symfony_console::Terminal; +use shirabe_symfony_console::command::command::{Command, CommandData, SetDefinitionArg}; +use shirabe_symfony_console::helper::Table; +use shirabe_symfony_console::helper::TableSeparator; +use shirabe_symfony_console::input::InputInterface; +use shirabe_symfony_console::output::OutputInterface; pub const SUCCESS: i64 = 0; pub const FAILURE: i64 = 1; @@ -251,26 +249,26 @@ pub trait BaseCommand: Command { #[macro_export] macro_rules! delegate_base_command_trait_impls_to_inner { ($field:ident) => { - shirabe_external_packages::delegate_to_inner!($field, fn require_composer(&self, disable_plugins: Option, disable_scripts: Option) -> anyhow::Result<$crate::composer::PartialComposerHandle>); - shirabe_external_packages::delegate_to_inner!($field, fn try_composer(&self, disable_plugins: Option, disable_scripts: Option) -> Option<$crate::composer::PartialComposerHandle>); - shirabe_external_packages::delegate_to_inner!($field, fn set_composer(&self, composer: $crate::composer::PartialComposerHandle)); - shirabe_external_packages::delegate_to_inner!($field, fn reset_composer(&self) -> anyhow::Result<()>); - shirabe_external_packages::delegate_to_inner!($field, fn get_io(&self) -> std::rc::Rc>); - shirabe_external_packages::delegate_to_inner!($field, fn set_io(&self, io: std::rc::Rc>)); - shirabe_external_packages::delegate_to_inner!($field, fn create_composer_instance(&self, input: std::rc::Rc>, io: std::rc::Rc>, config: Option>, disable_plugins: bool, disable_scripts: Option) -> anyhow::Result<$crate::composer::PartialComposerHandle>); - shirabe_external_packages::delegate_to_inner!($field, fn get_preferred_install_options(&self, config: &$crate::config::Config, input: std::rc::Rc>, keep_vcs_requires_prefer_source: bool) -> anyhow::Result<(bool, bool)>); - shirabe_external_packages::delegate_to_inner!($field, fn get_platform_requirement_filter(&self, input: std::rc::Rc>) -> anyhow::Result>); - shirabe_external_packages::delegate_to_inner!($field, fn format_requirements(&self, requirements: Vec) -> anyhow::Result>); - shirabe_external_packages::delegate_to_inner!($field, fn normalize_requirements(&self, requirements: Vec) -> anyhow::Result>>); - shirabe_external_packages::delegate_to_inner!($field, fn render_table(&self, table: Vec, output: std::rc::Rc>)); - shirabe_external_packages::delegate_to_inner!($field, fn get_terminal_width(&self) -> i64); - shirabe_external_packages::delegate_to_inner!($field, fn get_audit_format(&self, input: std::rc::Rc>, opt_name: &str) -> anyhow::Result); - shirabe_external_packages::delegate_to_inner!($field, fn create_audit_config(&self, config: &mut $crate::config::Config, input: std::rc::Rc>) -> anyhow::Result<$crate::advisory::AuditConfig>); + shirabe_symfony_console::delegate_to_inner!($field, fn require_composer(&self, disable_plugins: Option, disable_scripts: Option) -> anyhow::Result<$crate::composer::PartialComposerHandle>); + shirabe_symfony_console::delegate_to_inner!($field, fn try_composer(&self, disable_plugins: Option, disable_scripts: Option) -> Option<$crate::composer::PartialComposerHandle>); + shirabe_symfony_console::delegate_to_inner!($field, fn set_composer(&self, composer: $crate::composer::PartialComposerHandle)); + shirabe_symfony_console::delegate_to_inner!($field, fn reset_composer(&self) -> anyhow::Result<()>); + shirabe_symfony_console::delegate_to_inner!($field, fn get_io(&self) -> std::rc::Rc>); + shirabe_symfony_console::delegate_to_inner!($field, fn set_io(&self, io: std::rc::Rc>)); + shirabe_symfony_console::delegate_to_inner!($field, fn create_composer_instance(&self, input: std::rc::Rc>, io: std::rc::Rc>, config: Option>, disable_plugins: bool, disable_scripts: Option) -> anyhow::Result<$crate::composer::PartialComposerHandle>); + shirabe_symfony_console::delegate_to_inner!($field, fn get_preferred_install_options(&self, config: &$crate::config::Config, input: std::rc::Rc>, keep_vcs_requires_prefer_source: bool) -> anyhow::Result<(bool, bool)>); + shirabe_symfony_console::delegate_to_inner!($field, fn get_platform_requirement_filter(&self, input: std::rc::Rc>) -> anyhow::Result>); + shirabe_symfony_console::delegate_to_inner!($field, fn format_requirements(&self, requirements: Vec) -> anyhow::Result>); + shirabe_symfony_console::delegate_to_inner!($field, fn normalize_requirements(&self, requirements: Vec) -> anyhow::Result>>); + shirabe_symfony_console::delegate_to_inner!($field, fn render_table(&self, table: Vec, output: std::rc::Rc>)); + shirabe_symfony_console::delegate_to_inner!($field, fn get_terminal_width(&self) -> i64); + shirabe_symfony_console::delegate_to_inner!($field, fn get_audit_format(&self, input: std::rc::Rc>, opt_name: &str) -> anyhow::Result); + shirabe_symfony_console::delegate_to_inner!($field, fn create_audit_config(&self, config: &mut $crate::config::Config, input: std::rc::Rc>) -> anyhow::Result<$crate::advisory::AuditConfig>); }; } impl Command for BaseCommandData { - shirabe_external_packages::delegate_command_trait_impls_to_inner!(inner); + shirabe_symfony_console::delegate_command_trait_impls_to_inner!(inner); } impl PhpClass for BaseCommandData { @@ -299,7 +297,8 @@ impl BaseCommand for BaseCommandData { }; let composer = { let mut app_ref = application.borrow_mut(); - let app_dyn: &mut dyn shirabe_external_packages::symfony::console::application::Application = &mut *app_ref; + let app_dyn: &mut dyn shirabe_symfony_console::application::Application = + &mut *app_ref; let app = app_dyn .as_any_mut() .downcast_mut::() @@ -326,7 +325,8 @@ impl BaseCommand for BaseCommandData { { let result = { let mut app_ref = application.borrow_mut(); - let app_dyn: &mut dyn shirabe_external_packages::symfony::console::application::Application = &mut *app_ref; + let app_dyn: &mut dyn shirabe_symfony_console::application::Application = + &mut *app_ref; let app = app_dyn .as_any_mut() .downcast_mut::() @@ -349,7 +349,7 @@ impl BaseCommand for BaseCommandData { *self.composer.borrow_mut() = None; if let Some(application) = self.get_application() { let mut app_ref = application.borrow_mut(); - let app_dyn: &mut dyn shirabe_external_packages::symfony::console::application::Application = &mut *app_ref; + let app_dyn: &mut dyn shirabe_symfony_console::application::Application = &mut *app_ref; let app = app_dyn .as_any_mut() .downcast_mut::() @@ -365,7 +365,8 @@ impl BaseCommand for BaseCommandData { Some(application) => { let io = { let app_ref = application.borrow(); - let app_dyn: &dyn shirabe_external_packages::symfony::console::application::Application = &*app_ref; + let app_dyn: &dyn shirabe_symfony_console::application::Application = + &*app_ref; let app = app_dyn .as_any() .downcast_ref::() @@ -717,19 +718,14 @@ impl BaseCommand for BaseCommandData { /// (same for `getDisableScriptsByDefault()`), ORed into the caller's flags. fn apply_application_defaults( application: Option< - std::rc::Rc< - std::cell::RefCell< - dyn shirabe_external_packages::symfony::console::application::Application, - >, - >, + std::rc::Rc>, >, mut disable_plugins: bool, mut disable_scripts: bool, ) -> (bool, bool) { if let Some(application) = application { let app_ref = application.borrow(); - let app_dyn: &dyn shirabe_external_packages::symfony::console::application::Application = - &*app_ref; + let app_dyn: &dyn shirabe_symfony_console::application::Application = &*app_ref; let app = app_dyn .as_any() .downcast_ref::() @@ -745,10 +741,10 @@ fn apply_application_defaults( /// each command's `Command::complete` forwards here. pub fn base_command_complete( cmd: &dyn BaseCommand, - input: &shirabe_external_packages::symfony::console::completion::completion_input::CompletionInput, - suggestions: &mut shirabe_external_packages::symfony::console::completion::completion_suggestions::CompletionSuggestions, + input: &shirabe_symfony_console::completion::completion_input::CompletionInput, + suggestions: &mut shirabe_symfony_console::completion::completion_suggestions::CompletionSuggestions, ) -> anyhow::Result<()> { - use shirabe_external_packages::symfony::console::completion::completion_input::CompletionInput; + use shirabe_symfony_console::completion::completion_input::CompletionInput; // PHP: (string) $input->getCompletionName() let name = input.get_completion_name().unwrap_or_default(); -- cgit v1.3.1-4-g156e