diff options
Diffstat (limited to 'crates/shirabe/src/command/config_command.rs')
| -rw-r--r-- | crates/shirabe/src/command/config_command.rs | 90 |
1 files changed, 89 insertions, 1 deletions
diff --git a/crates/shirabe/src/command/config_command.rs b/crates/shirabe/src/command/config_command.rs index 5237b62..62e630a 100644 --- a/crates/shirabe/src/command/config_command.rs +++ b/crates/shirabe/src/command/config_command.rs @@ -3,6 +3,7 @@ use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::symfony::component::console::command::command::Command; use shirabe_external_packages::symfony::component::console::completion::completion_input::CompletionInput; use shirabe_external_packages::symfony::component::console::input::input_interface::InputInterface; use shirabe_external_packages::symfony::component::console::input::input_option::InputOption; @@ -17,7 +18,9 @@ use shirabe_php_shim::{ }; use crate::advisory::auditor::Auditor; +use crate::command::base_command::BaseCommand; use crate::command::base_config_command::BaseConfigCommand; +use crate::composer::Composer; use crate::config::Config; use crate::config::json_config_source::JsonConfigSource; use crate::console::input::input_argument::InputArgument; @@ -32,7 +35,14 @@ use shirabe_semver::version_parser::VersionParser; #[derive(Debug)] pub struct ConfigCommand { - inner: BaseConfigCommand, + inner: Command, + composer: Option<Composer>, + io: Option<Box<dyn IOInterface>>, + + config: Option<Config>, + config_file: Option<JsonFile>, + config_source: Option<JsonConfigSource>, + pub(crate) auth_config_file: Option<JsonFile>, pub(crate) auth_config_source: Option<JsonConfigSource>, } @@ -2170,3 +2180,81 @@ fn key_first_key(value: &PhpMixed) -> Option<String> { } None } + +impl BaseCommand for ConfigCommand { + fn inner(&self) -> &Command { + &self.inner + } + + fn inner_mut(&mut self) -> &mut Command { + &mut self.inner + } + + fn composer(&self) -> Option<&Composer> { + self.composer.as_ref() + } + + fn composer_mut(&mut self) -> Option<&mut Composer> { + self.composer.as_mut() + } + + fn io(&self) -> Option<&dyn IOInterface> { + self.io.as_ref() + } + + fn io_mut(&mut self) -> Option<&mut dyn IOInterface> { + self.io.as_mut() + } +} + +impl BaseCommand for ConfigCommand { + fn inner(&self) -> &Command { + &self.inner + } + + fn inner_mut(&mut self) -> &mut Command { + &mut self.inner + } + + fn composer(&self) -> Option<&Composer> { + self.composer.as_ref() + } + + fn composer_mut(&mut self) -> &mut Option<Composer> { + &mut self.composer + } + + fn io(&self) -> Option<&dyn IOInterface> { + self.io.as_deref() + } + + fn io_mut(&mut self) -> &mut Option<Box<dyn IOInterface>> { + &mut self.io + } +} + +impl BaseConfigCommand for ConfigCommand { + fn config(&self) -> Option<&Config> { + self.config.as_ref() + } + + fn config_mut(&mut self) -> Option<&mut Config> { + self.config.as_mut() + } + + fn config_file(&self) -> Option<&JsonFile> { + self.config_file.as_ref() + } + + fn config_file_mut(&mut self) -> Option<&mut JsonFile> { + self.config_file.as_mut() + } + + fn config_source(&self) -> Option<&JsonConfigSource> { + self.config_source.as_ref() + } + + fn config_source_mut(&mut self) -> Option<&mut JsonConfigSource> { + self.config_source.as_mut() + } +} |
