+ if (!$this->runBasicChecks($installer)) {
+ $errorMessage = $this->extractErrors($installer->getChecks());
+ throw new RuntimeException($errorMessage);
+ }
+
+ $this->out(" Complete!\n\n");
+
+ // if a config file is set,
+ $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($a->getBasePath() . DIRECTORY_SEPARATOR . $config_file, $a->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.config.php')) {
+ throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '" . $a->getBasePath() . "'" . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "local.config.php' manually.\n");
+ }
+ }
+
+ $db_host = $a->getConfigCache()->get('database', 'hostname');
+ $db_user = $a->getConfigCache()->get('database', 'username');
+ $db_pass = $a->getConfigCache()->get('database', 'password');
+ $db_data = $a->getConfigCache()->get('database', 'database');
+ } else {
+ // Creating config file
+ $this->out("Creating config file...\n");
+
+ $save_db = $this->getOption(['s', 'savedb'], false);
+
+ $db_host = $this->getOption(['H', 'dbhost'], ($save_db) ? getenv('MYSQL_HOST') : '');
+ $db_port = $this->getOption(['p', 'dbport'], ($save_db) ? getenv('MYSQL_PORT') : null);
+ $db_data = $this->getOption(['d', 'dbdata'], ($save_db) ? getenv('MYSQL_DATABASE') : '');
+ $db_user = $this->getOption(['U', 'dbuser'], ($save_db) ? getenv('MYSQL_USER') . getenv('MYSQL_USERNAME') : '');
+ $db_pass = $this->getOption(['P', 'dbpass'], ($save_db) ? getenv('MYSQL_PASSWORD') : '');
+ $url_path = $this->getOption(['u', 'urlpath'], !empty('FRIENDICA_URL_PATH') ? getenv('FRIENDICA_URL_PATH') : null);
+ $php_path = $this->getOption(['b', 'phppath'], !empty('FRIENDICA_PHP_PATH') ? getenv('FRIENDICA_PHP_PATH') : null);
+ $admin_mail = $this->getOption(['A', 'admin'], !empty('FRIENDICA_ADMIN_MAIL') ? getenv('FRIENDICA_ADMIN_MAIL') : '');
+ $tz = $this->getOption(['T', 'tz'], !empty('FRIENDICA_TZ') ? getenv('FRIENDICA_TZ') : '');
+ $lang = $this->getOption(['L', 'lang'], !empty('FRIENDICA_LANG') ? getenv('FRIENDICA_LANG') : '');
+
+ if (empty($php_path)) {
+ $php_path = $installer->getPHPPath();
+ }
+
+ $installer->createConfig(
+ $php_path,
+ $url_path,
+ (!empty($db_port) ? $db_host . ':' . $db_port : $db_host),
+ $db_user,
+ $db_pass,
+ $db_data,
+ $tz,
+ $lang,
+ $admin_mail,
+ $a->getBasePath()
+ );