/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$io = new ConsoleIO($input, $output);
$name = Validators::validatePluginName($input->getOption('name'));
$commandName = $input->getOption('command-name');
if (empty($commandName) === false) {
$commandName = Validators::validateCommandName($commandName);
}
$commandDescription = $input->getOption('command-description');
$commandHelp = $input->getOption('command-help');
$author = $input->getOption('author');
$email = $input->getOption('email');
if (empty($email) === false) {
$email = Validators::validateEmail($email);
}
$description = $input->getOption('description');
$license = $input->getOption('license') ?: 'MIT';
$generator = new PluginGenerator('./src/plugins', $name);
$generator->setSkeletonDirs([__DIR__ . '/../../app/skeletons']);
$generator->setCommandData($commandName, $commandDescription, $commandHelp);
$generator->setAuthor($author, $email);
$generator->setDescription($description);
$generator->setLicense($license);
$files = $generator->generate();
$this->resultMessage($io, $files);
}