From ca36ea17f9291df42d432a877d0dc64ba9d8568e Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Mon, 23 Sep 2019 12:47:58 +0200 Subject: [PATCH] Fix Auto-Installer --- src/Console/AutomaticInstallation.php | 21 +++++++++++-------- src/Database/Database.php | 29 ++++++++++++++++----------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/Console/AutomaticInstallation.php b/src/Console/AutomaticInstallation.php index 0f1e7a742f..8815b98799 100644 --- a/src/Console/AutomaticInstallation.php +++ b/src/Console/AutomaticInstallation.php @@ -129,16 +129,13 @@ HELP; $config_file = $this->getOption(['f', 'file']); if (!empty($config_file)) { - if ($config_file != 'config' . DIRECTORY_SEPARATOR . 'local.config.php') { - // Copy config file - $this->out("Copying config file...\n"); - if (!copy($basePathConf . DIRECTORY_SEPARATOR . $config_file, $basePathConf . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.config.php')) { - throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '" . $basePathConf . "'" . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "local.config.php' manually.\n"); - } + + if (!file_exists($config_file)) { + throw new RuntimeException("ERROR: Config file does not exist.\n"); } //reload the config cache - $loader = new ConfigFileLoader($basePathConf); + $loader = new ConfigFileLoader($config_file); $loader->setupCache($configCache); } else { @@ -195,7 +192,7 @@ HELP; $installer->createConfig($configCache); } - $this->out(" Complete!\n\n"); + $this->out("Complete!\n\n"); // Check database connection $this->out("Checking database...\n"); @@ -219,6 +216,14 @@ HELP; throw new RuntimeException($errorMessage); } + if (!empty($config_file) && $config_file != 'config' . DIRECTORY_SEPARATOR . 'local.config.php') { + // Copy config file + $this->out("Copying config file...\n"); + if (!copy($basePathConf . DIRECTORY_SEPARATOR . $config_file, $basePathConf . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.config.php')) { + throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '" . $basePathConf . "'" . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "local.config.php' manually.\n"); + } + } + $this->out(" Complete!\n\n"); // Install theme diff --git a/src/Database/Database.php b/src/Database/Database.php index d13b52848d..813d4e9853 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -90,9 +90,12 @@ class Database public function connect() { if (!is_null($this->connection) && $this->connected()) { - return true; + return $this->connected; } + // Reset connected state + $this->connected = false; + $port = 0; $serveraddr = trim($this->configCache->get('database', 'hostname')); $serverdata = explode(':', $serveraddr); @@ -187,19 +190,20 @@ class Database */ public function disconnect() { - if (is_null($this->connection)) { - return; + if (!is_null($this->connection)) { + switch ($this->driver) { + case 'pdo': + $this->connection = null; + break; + case 'mysqli': + $this->connection->close(); + $this->connection = null; + break; + } } - switch ($this->driver) { - case 'pdo': - $this->connection = null; - break; - case 'mysqli': - $this->connection->close(); - $this->connection = null; - break; - } + $this->driver = null; + $this->connected = false; } /** @@ -369,6 +373,7 @@ class Database $connected = $this->connection->ping(); break; } + return $connected; } -- 2.39.5