//! ref: composer/src/Composer/Command/AboutCommand.php
use crate::command::base_command::BaseCommand;
use crate::command::base_command::BaseCommandData;
use crate::command::base_command::HasBaseCommandData;
use crate::composer::Composer;
use crate::io::io_interface::IOInterface;
use shirabe_external_packages::symfony::component::console::input::input_interface::InputInterface;
use shirabe_external_packages::symfony::component::console::output::output_interface::OutputInterface;
#[derive(Debug)]
pub struct AboutCommand {
base_command_data: BaseCommandData,
}
impl AboutCommand {
pub fn configure(&mut self) {
self.set_name("about")
.set_description("Shows a short information about Composer")
.set_help("php composer.phar about");
}
pub fn execute(&mut self, input: &dyn InputInterface, output: &dyn OutputInterface) -> i64 {
let composer_version = Composer::get_version();
let _ = (input, output);
self.get_io().write(&format!(
"Composer - Dependency Manager for PHP - version {composer_version}\n\
Composer is a dependency manager tracking local dependencies of your projects and libraries.\n\
See https://getcomposer.org/ for more information."
));
0
}
}
impl HasBaseCommandData for AboutCommand {
fn base_command_data(&self) -> &BaseCommandData {
&self.base_command_data
}
fn base_command_data_mut(&mut self) -> &mut BaseCommandData {
&mut self.base_command_data
}
}