]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Command/InstallCommand.php
Add a real configuration for CS-Fixer
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Command / InstallCommand.php
index 0d9364f6aa4fb30a2c629f033126e254dbb5d722..505514801622018820c1722ea2e72910067ae450 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace Wallabag\CoreBundle\Command;
 
+use Craue\ConfigBundle\Entity\Setting;
 use FOS\UserBundle\Event\UserEvent;
 use FOS\UserBundle\FOSUserEvents;
 use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
@@ -14,7 +15,6 @@ use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Question\ConfirmationQuestion;
 use Symfony\Component\Console\Question\Question;
 use Wallabag\CoreBundle\Entity\Config;
-use Craue\ConfigBundle\Entity\Setting;
 
 class InstallCommand extends ContainerAwareCommand
 {
@@ -86,7 +86,7 @@ class InstallCommand extends ContainerAwareCommand
         if (!extension_loaded($this->getContainer()->getParameter('database_driver'))) {
             $fulfilled = false;
             $status = '<error>ERROR!</error>';
-            $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.';
+            $help = 'Database driver "' . $this->getContainer()->getParameter('database_driver') . '" is not installed.';
         }
 
         $rows[] = [sprintf($label, $this->getContainer()->getParameter('database_driver')), $status, $help];
@@ -101,10 +101,10 @@ class InstallCommand extends ContainerAwareCommand
             $conn->connect();
         } catch (\Exception $e) {
             if (false === strpos($e->getMessage(), 'Unknown database')
-                && false === strpos($e->getMessage(), 'database "'.$this->getContainer()->getParameter('database_name').'" does not exist')) {
+                && false === strpos($e->getMessage(), 'database "' . $this->getContainer()->getParameter('database_name') . '" does not exist')) {
                 $fulfilled = false;
                 $status = '<error>ERROR!</error>';
-                $help = 'Can\'t connect to the database: '.$e->getMessage();
+                $help = 'Can\'t connect to the database: ' . $e->getMessage();
             }
         }
 
@@ -123,7 +123,7 @@ class InstallCommand extends ContainerAwareCommand
             if (false === version_compare($version, $minimalVersion, '>')) {
                 $fulfilled = false;
                 $status = '<error>ERROR!</error>';
-                $help = 'Your MySQL version ('.$version.') is too old, consider upgrading ('.$minimalVersion.'+).';
+                $help = 'Your MySQL version (' . $version . ') is too old, consider upgrading (' . $minimalVersion . '+).';
             }
         }
 
@@ -137,21 +137,21 @@ class InstallCommand extends ContainerAwareCommand
             if (isset($matches[1]) & version_compare($matches[1], '9.2.0', '<')) {
                 $fulfilled = false;
                 $status = '<error>ERROR!</error>';
-                $help = 'PostgreSQL should be greater than 9.1 (actual version: '.$matches[1].')';
+                $help = 'PostgreSQL should be greater than 9.1 (actual version: ' . $matches[1] . ')';
             }
         }
 
         $rows[] = [$label, $status, $help];
 
         foreach ($this->functionExists as $functionRequired) {
-            $label = '<comment>'.$functionRequired.'</comment>';
+            $label = '<comment>' . $functionRequired . '</comment>';
             $status = '<info>OK!</info>';
             $help = '';
 
             if (!function_exists($functionRequired)) {
                 $fulfilled = false;
                 $status = '<error>ERROR!</error>';
-                $help = 'You need the '.$functionRequired.' function activated';
+                $help = 'You need the ' . $functionRequired . ' function activated';
             }
 
             $rows[] = [$label, $status, $help];
@@ -292,165 +292,7 @@ class InstallCommand extends ContainerAwareCommand
         // cleanup before insert new stuff
         $em->createQuery('DELETE FROM CraueConfigBundle:Setting')->execute();
 
-        $settings = [
-            [
-                'name' => 'share_public',
-                'value' => '1',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'carrot',
-                'value' => '1',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'share_diaspora',
-                'value' => '1',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'diaspora_url',
-                'value' => 'http://diasporapod.com',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'share_unmark',
-                'value' => '1',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'unmark_url',
-                'value' => 'https://unmark.it',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'share_shaarli',
-                'value' => '1',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'shaarli_url',
-                'value' => 'http://myshaarli.com',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'share_scuttle',
-                'value' => '1',
-                'section' => 'entry',
-            ],
-            [
-                'name' => 'scuttle_url',
-                'value' => 'http://scuttle.org',
-                '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' => 'import_with_redis',
-                'value' => '0',
-                'section' => 'import',
-            ],
-            [
-                'name' => 'import_with_rabbitmq',
-                'value' => '0',
-                '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' => '',
-                'section' => 'misc',
-            ],
-            [
-                'name' => 'piwik_enabled',
-                'value' => '0',
-                'section' => 'analytics',
-            ],
-            [
-                'name' => 'piwik_host',
-                'value' => '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',
-            ],
-            [
-                'name' => 'download_images_enabled',
-                'value' => '0',
-                'section' => 'misc',
-            ],
-            [
-                'name' => 'restricted_access',
-                'value' => '0',
-                'section' => 'entry',
-            ],
-        ];
-
-        foreach ($settings as $setting) {
+        foreach ($this->getContainer()->getParameter('wallabag_core.default_internal_settings') as $setting) {
             $newSetting = new Setting();
             $newSetting->setName($setting['name']);
             $newSetting->setValue($setting['value']);
@@ -471,6 +313,8 @@ class InstallCommand extends ContainerAwareCommand
 
         $this
             ->runCommand('doctrine:migrations:migrate', ['--no-interaction' => true]);
+
+        return $this;
     }
 
     /**
@@ -499,20 +343,18 @@ class InstallCommand extends ContainerAwareCommand
         $output = new BufferedOutput();
         $exitCode = $this->getApplication()->run(new ArrayInput($parameters), $output);
 
+        // 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();
+
         if (0 !== $exitCode) {
             $this->getApplication()->setAutoExit(true);
 
-            $this->defaultOutput->writeln('');
-            $this->defaultOutput->writeln('<error>The command "'.$command.'" generates some errors: </error>');
-            $this->defaultOutput->writeln($output->fetch());
-
-            die();
+            throw new \RuntimeException(
+                'The command "' . $command . "\" generates some errors: \n\n"
+                . $output->fetch());
         }
 
-        // 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();
-
         return $this;
     }
 
@@ -554,7 +396,7 @@ class InstallCommand extends ContainerAwareCommand
         }
 
         try {
-            return in_array($databaseName, $schemaManager->listDatabases());
+            return in_array($databaseName, $schemaManager->listDatabases(), true);
         } catch (\Doctrine\DBAL\Exception\DriverException $e) {
             // it means we weren't able to get database list, assume the database doesn't exist