5 * Contains \Drupal\Console\Command\Site\ImportLocalCommand.
8 namespace Drupal\Console\Command\Site;
10 use Symfony\Component\Console\Input\InputArgument;
11 use Symfony\Component\Console\Input\InputOption;
12 use Symfony\Component\Console\Input\InputInterface;
13 use Symfony\Component\Console\Output\OutputInterface;
14 use Symfony\Component\Console\Command\Command;
15 use Drupal\Console\Core\Command\Shared\CommandTrait;
16 use Drupal\Console\Core\Style\DrupalStyle;
17 use Drupal\Console\Core\Utils\ConfigurationManager;
18 use Symfony\Component\Filesystem\Filesystem;
19 use Symfony\Component\Yaml\Yaml;
22 * Class ImportLocalCommand
24 * @package Drupal\Console\Command\Site
26 class ImportLocalCommand extends Command
36 * @var ConfigurationManager
38 protected $configurationManager;
41 * ImportLocalCommand constructor.
44 * @param ConfigurationManager $configurationManager
46 public function __construct(
48 ConfigurationManager $configurationManager
50 $this->appRoot = $appRoot;
51 $this->configurationManager = $configurationManager;
52 parent::__construct();
58 protected function configure()
61 ->setName('site:import:local')
62 ->setDescription($this->trans('commands.site.import.local.description'))
65 InputArgument::REQUIRED,
66 $this->trans('commands.site.import.local.arguments.name')
70 InputArgument::REQUIRED,
71 $this->trans('commands.site.import.local.arguments.directory')
76 InputOption::VALUE_OPTIONAL,
77 $this->trans('commands.site.import.local.options.environment')
79 ->setHelp($this->trans('commands.site.import.local.help'));
86 protected function execute(InputInterface $input, OutputInterface $output)
88 $io = new DrupalStyle($input, $output);
90 $siteName = $input->getArgument('name');
91 $directory = $input->getArgument('directory');
93 $fileSystem = new Filesystem();
94 if (!$fileSystem->exists($directory)) {
97 $this->trans('commands.site.import.local.messages.error-missing'),
105 $environment = $input->getOption('environment')?:'local';
109 'root' => $this->appRoot,
115 $dump = $yaml::dump($siteConfig);
117 $userPath = sprintf('%s/.console/sites', $this->configurationManager->getHomeDirectory());
118 $configFile = sprintf('%s/%s.yml', $userPath, $siteName);
121 $fileSystem->dumpFile($configFile, $dump);
122 } catch (\Exception $e) {
125 $this->trans('commands.site.import.local.messages.error-writing'),
135 $this->trans('commands.site.import.local.messages.imported')
143 protected function interact(InputInterface $input, OutputInterface $output)
145 $io = new DrupalStyle($input, $output);
147 $directory = $input->getArgument('directory');
149 $directory = $io->ask(
150 $this->trans('commands.site.import.local.questions.directory'),
153 $input->setArgument('directory', $directory);
156 $name = $input->getArgument('name');
159 $this->trans('commands.site.import.local.questions.name')
161 $input->setArgument('name', $name);