+ $this->defaultOutput->writeln('<info><comment>Step 4 of 4.</comment> Config setup.</info>');
+ $em = $this->getContainer()->get('doctrine.orm.entity_manager');
+
+ // cleanup before insert new stuff
+ $em->createQuery('DELETE FROM CraueConfigBundle:Setting')->execute();
+
+ $settings = [
+ [
+ 'name' => 'carrot',
+ 'value' => '1',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'share_diaspora',
+ 'value' => '1',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'diaspora_url',
+ 'value' => 'http://diasporapod.com',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'share_shaarli',
+ 'value' => '1',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'shaarli_url',
+ 'value' => 'http://myshaarli.com',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'share_mail',
+ 'value' => '1',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'share_twitter',
+ 'value' => '1',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'export_epub',
+ 'value' => '1',
+ 'section' => 'export',
+ ],
+ [
+ 'name' => 'export_mobi',
+ 'value' => '1',
+ 'section' => 'export',
+ ],
+ [
+ 'name' => 'export_pdf',
+ 'value' => '1',
+ 'section' => 'export',
+ ],
+ [
+ 'name' => 'export_csv',
+ 'value' => '1',
+ 'section' => 'export',
+ ],
+ [
+ 'name' => 'export_json',
+ 'value' => '1',
+ 'section' => 'export',
+ ],
+ [
+ 'name' => 'export_txt',
+ 'value' => '1',
+ 'section' => 'export',
+ ],
+ [
+ 'name' => 'export_xml',
+ 'value' => '1',
+ 'section' => 'export',
+ ],
+ [
+ 'name' => 'pocket_consumer_key',
+ 'value' => null,
+ 'section' => 'import',
+ ],
+ [
+ 'name' => 'show_printlink',
+ 'value' => '1',
+ 'section' => 'entry',
+ ],
+ [
+ 'name' => 'wallabag_support_url',
+ 'value' => 'https://www.wallabag.org/pages/support.html',
+ 'section' => 'misc',
+ ],
+ [
+ 'name' => 'wallabag_url',
+ 'value' => 'http://v2.wallabag.org',
+ 'section' => 'misc',
+ ],
+ [
+ 'name' => 'piwik_enabled',
+ 'value' => '0',
+ 'section' => 'analytics',
+ ],
+ [
+ 'name' => 'piwik_host',
+ 'value' => 'http://v2.wallabag.org',
+ 'section' => 'analytics',
+ ],
+ [
+ 'name' => 'piwik_site_id',
+ 'value' => '1',
+ 'section' => 'analytics',
+ ],
+ [
+ 'name' => 'demo_mode_enabled',
+ 'value' => '0',
+ 'section' => 'misc',
+ ],
+ [
+ 'name' => 'demo_mode_username',
+ 'value' => 'wallabag',
+ 'section' => 'misc',
+ ],
+ ];
+
+ foreach ($settings as $setting) {
+ $newSetting = new Setting();
+ $newSetting->setName($setting['name']);
+ $newSetting->setValue($setting['value']);
+ $newSetting->setSection($setting['section']);
+ $em->persist($newSetting);
+ }
+
+ $em->flush();
+
+ $this->defaultOutput->writeln('');
+
+ return $this;
+ }
+
+ /**
+ * Run a command.
+ *
+ * @param string $command
+ * @param array $parameters Parameters to this command (usually 'force' => true)
+ */
+ protected function runCommand($command, $parameters = [])
+ {
+ $parameters = array_merge(
+ ['command' => $command],
+ $parameters,
+ [
+ '--no-debug' => true,
+ '--env' => $this->defaultInput->getOption('env') ?: 'dev',
+ ]
+ );
+
+ if ($this->defaultInput->getOption('no-interaction')) {
+ $parameters = array_merge($parameters, ['--no-interaction' => true]);
+ }
+
+ $this->getApplication()->setAutoExit(false);
+ $exitCode = $this->getApplication()->run(new ArrayInput($parameters), new NullOutput());
+
+ if (0 !== $exitCode) {
+ $this->getApplication()->setAutoExit(true);
+
+ $errorMessage = sprintf('The command "%s" terminated with an error code: %u.', $command, $exitCode);
+ $this->defaultOutput->writeln("<error>$errorMessage</error>");
+ $exception = new \Exception($errorMessage, $exitCode);
+
+ throw $exception;
+ }
+
+ // PDO does not always close the connection after Doctrine commands.
+ // See https://github.com/symfony/symfony/issues/11750.
+ $this->getContainer()->get('doctrine')->getManager()->getConnection()->close();