X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FCommand%2FInstallCommand.php;h=e134ced52b2cc5116bb97c7f6dc01bc5895d002a;hb=5ecdfcd041767c9e3244a92bb0a6cc3c3f80fea3;hp=2d73a9add8cafc66412a6da9ad1b2c61c4e62b69;hpb=cc8c2d315f6868201ff32cc4895844c800624a87;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php index 2d73a9ad..e134ced5 100644 --- a/src/Wallabag/CoreBundle/Command/InstallCommand.php +++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php @@ -60,7 +60,7 @@ class InstallCommand extends ContainerAwareCommand ->checkRequirements() ->setupDatabase() ->setupAdmin() - ->setupAsset() + ->setupConfig() ; $output->writeln('Wallabag has been successfully installed.'); @@ -73,14 +73,14 @@ class InstallCommand extends ContainerAwareCommand $fulfilled = true; - $label = 'PDO Drivers'; - if (extension_loaded('pdo_sqlite') || extension_loaded('pdo_mysql') || extension_loaded('pdo_pgsql')) { - $status = 'OK!'; - $help = ''; - } else { + $label = 'PDO Driver'; + $status = 'OK!'; + $help = ''; + + if (!extension_loaded($this->getContainer()->getParameter('database_driver'))) { $fulfilled = false; $status = 'ERROR!'; - $help = 'Needs one of sqlite, mysql or pgsql PDO drivers'; + $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.'; } $rows = []; @@ -88,11 +88,10 @@ class InstallCommand extends ContainerAwareCommand foreach ($this->functionExists as $functionRequired) { $label = ''.$functionRequired.''; + $status = 'OK!'; + $help = ''; - if (function_exists($functionRequired)) { - $status = 'OK!'; - $help = ''; - } else { + if (!function_exists($functionRequired)) { $fulfilled = false; $status = 'ERROR!'; $help = 'You need the '.$functionRequired.' function activated'; @@ -228,15 +227,20 @@ class InstallCommand extends ContainerAwareCommand $em->persist($config); + $this->defaultOutput->writeln(''); + + return $this; + } + + protected function setupConfig() + { + $this->defaultOutput->writeln('Step 4 of 4. Config setup.'); + $em = $this->getContainer()->get('doctrine.orm.entity_manager'); + // cleanup before insert new stuff $em->createQuery('DELETE FROM CraueConfigBundle:Setting')->execute(); $settings = [ - [ - 'name' => 'download_pictures', - 'value' => '1', - 'section' => 'entry', - ], [ 'name' => 'carrot', 'value' => '1', @@ -369,20 +373,6 @@ class InstallCommand extends ContainerAwareCommand return $this; } - protected function setupAsset() - { - $this->defaultOutput->writeln('Step 4 of 4. Installing assets.'); - - $this - ->runCommand('assets:install') - ->runCommand('assetic:dump') - ; - - $this->defaultOutput->writeln(''); - - return $this; - } - /** * Run a command. * @@ -461,7 +451,13 @@ class InstallCommand extends ContainerAwareCommand return false; } - return in_array($databaseName, $schemaManager->listDatabases()); + try { + return in_array($databaseName, $schemaManager->listDatabases()); + } catch (\Doctrine\DBAL\Exception\DriverException $e) { + // it means we weren't able to get database list, assume the database doesn't exist + + return false; + } } /**