/**
  * {@inheritdoc}
  */
 protected function initialize(InputInterface $input, OutputInterface $output)
 {
     parent::initialize($input, $output);
     if (!$this->getApplication()->getConfiguration()['env-dir']) {
         throw new \Exception('Config env-dir is missing');
     }
     $dir = $this->getApplication()->getRoot() . '/' . $this->getApplication()->getConfiguration()['env-dir'];
     if (!is_dir($dir)) {
         throw new \Exception('Directory ' . $dir . ' is missing');
     }
     $environments = (include $dir . '/index.php');
     if (!is_array($environments)) {
         throw new \Exception('File with description of environments is missing');
     } elseif (count($environments) == 0) {
         throw new \Exception('Environments not found in description file');
     }
     if ($input->getArgument('type')) {
         $code = $input->getArgument('type');
         if (!isset($environments[$code])) {
             throw new \Exception('Invalid environment code!');
         }
     } else {
         foreach ($environments as $code => $environment) {
             $choices[$code] = $environment['name'];
         }
         $questionHelper = $this->getHelper('question');
         $question = new ChoiceQuestion('<info>Which environment install?</info>', $choices, false);
         $code = $questionHelper->ask($input, $output, $question);
     }
     if (!isset($environments[$code]['path'])) {
         throw new \Exception('Environment path not found!');
     }
     $this->dir = $dir . '/' . $environments[$code]['path'];
     $this->config = (include $this->dir . '/config.php');
 }
 /**
  * {@inheritdoc}
  */
 protected function initialize(InputInterface $input, OutputInterface $output)
 {
     $this->tmplDir = __DIR__ . '/../../../tmpl';
     $this->questionHelper = $this->getHelper('question');
     parent::initialize($input, $output);
 }