setName('intro:add') ->setDescription('Write the Intro page') ->addOption('review', 'r', InputOption::VALUE_NONE, 'Review file in editor'); parent::configure(); } /** * {@inheritDoc} * @see \Magdev\Dossier\Command\BaseCommand::initialize() */ protected function initialize(InputInterface $input, OutputInterface $output) { parent::initialize($input, $output); try { $this->form = $this->getHelper('form') ->getFormByName('form.intro', $input, $output); } catch (FormException $fe) { throw new RuntimeException(get_class($fe).': '.$fe->getMessage(), $fe->getCode(), $fe); } } /** * {@inheritDoc} * @see \Symfony\Component\Console\Command\Command::interact() */ protected function interact(InputInterface $input, OutputInterface $output) { $this->io->title(' '.$this->translator->trans('form.intro.header.add').''); $this->io->newLine(); $this->form->process(); } /** * {@inheritDoc} * @see \Symfony\Component\Console\Command\Command::execute() */ protected function execute(InputInterface $input, OutputInterface $output) { if ($this->form->isProcessed()) { $markdown = $this->getService('markdown'); /* @var $markdown \Magdev\Dossier\Service\MarkdownService */ try { $text = $this->form->stripData('text', ''); $markdown->save(PROJECT_ROOT.'/intro.md', $this->form->getResults(), $text, false); $this->io->success($this->translator->trans('message.write.success', array( '%name%' => 'Intro' ))); if ($input->getOption('review') != false) { $this->getService('uri_helper')->openFileInEditor(PROJECT_ROOT.'/intro.md'); } } catch (FormException $fe) { throw new RuntimeException(get_class($fe).': '.$fe->getMessage(), $fe->getCode(), $fe); } } } }