forked from hechoendrupal/drupal-console
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGeneratorPluginImageEffectCommand.php
More file actions
128 lines (110 loc) · 4.58 KB
/
Copy pathGeneratorPluginImageEffectCommand.php
File metadata and controls
128 lines (110 loc) · 4.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
/**
* @file
* Contains \Drupal\AppConsole\Command\GeneratorPluginImageEffectCommand.
*/
namespace Drupal\AppConsole\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Drupal\AppConsole\Generator\PluginImageEffectGenerator;
use Drupal\AppConsole\Command\Helper\ModuleTrait;
use Drupal\AppConsole\Command\Helper\ConfirmationTrait;
class GeneratorPluginImageEffectCommand extends GeneratorCommand
{
use ModuleTrait;
use ConfirmationTrait;
protected function configure()
{
$this
->setName('generate:plugin:imageeffect')
->setDescription($this->trans('commands.generate.plugin.imageeffect.description'))
->setHelp($this->trans('commands.generate.plugin.imageeffect.help'))
->addOption('module', '', InputOption::VALUE_REQUIRED, $this->trans('commands.common.options.module'))
->addOption('class-name', '', InputOption::VALUE_REQUIRED,
$this->trans('commands.generate.plugin.imageeffect.options.class-name'))
->addOption('label', '', InputOption::VALUE_OPTIONAL,
$this->trans('commands.generate.plugin.imageeffect.options.label'))
->addOption('plugin-id', '', InputOption::VALUE_OPTIONAL,
$this->trans('commands.generate.plugin.imageeffect.options.plugin-id'))
->addOption('description', '', InputOption::VALUE_OPTIONAL,
$this->trans('commands.generate.plugin.imageeffect.options.description'));
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$dialog = $this->getDialogHelper();
// @see use Drupal\AppConsole\Command\Helper\ConfirmationTrait::confirmationQuestion
if ($this->confirmationQuestion($input, $output, $dialog)) {
return;
}
$module = $input->getOption('module');
$class_name = $input->getOption('class-name');
$label = $input->getOption('label');
$plugin_id = $input->getOption('plugin-id');
$description = $input->getOption('description');
$this
->getGenerator()
->generate($module, $class_name, $label, $plugin_id, $description);
$this->getHelper('chain')->addCommand('cache:rebuild', ['--cache' => 'discovery']);
}
protected function interact(InputInterface $input, OutputInterface $output)
{
$dialog = $this->getDialogHelper();
// --module option
$module = $input->getOption('module');
if (!$module) {
// @see Drupal\AppConsole\Command\Helper\ModuleTrait::moduleQuestion
$module = $this->moduleQuestion($output, $dialog);
}
$input->setOption('module', $module);
// --class-name option
$class_name = $input->getOption('class-name');
if (!$class_name) {
$class_name = $dialog->ask(
$output,
$dialog->getQuestion($this->trans('commands.generate.plugin.imageeffect.questions.class-name'),
'DefaultImageEffect'),
'DefaultImageEffect'
);
}
$input->setOption('class-name', $class_name);
$machine_name = $this->getStringUtils()->camelCaseToUnderscore($class_name);
// --plugin label option
$label = $input->getOption('label');
if (!$label) {
$label = $dialog->ask(
$output,
$dialog->getQuestion($this->trans('commands.generate.plugin.imageeffect.questions.label'), $machine_name),
$machine_name
);
}
$input->setOption('label', $label);
// --name option
$plugin_id = $input->getOption('plugin-id');
if (!$plugin_id) {
$plugin_id = $dialog->ask($output,
$dialog->getQuestion($this->trans('commands.generate.plugin.imageeffect.questions.plugin-id'),
$machine_name),
$machine_name
);
}
$input->setOption('plugin-id', $plugin_id);
// --description option
$description = $input->getOption('description');
if (!$description) {
$description = $dialog->ask($output,
$dialog->getQuestion($this->trans('commands.generate.plugin.imageeffect.questions.description'),
'My Image Effect'),
'My Image Effect'
);
}
$input->setOption('description', $description);
}
protected function createGenerator()
{
return new PluginImageEffectGenerator();
}
}