namespace Friendica\Core\Console;
use Asika\SimpleConsole\Console;
-use dba;
use Friendica\App;
+use Friendica\Core\Config;
use Friendica\Core\Install;
+use Friendica\Core\Theme;
+use Friendica\Database\DBA;
+use RuntimeException;
require_once 'mod/install.php';
require_once 'include/dba.php';
return <<<HELP
Installation - Install Friendica automatically
Synopsis
- bin/console autoinstall [-h|--help|-?] [-v] [-a]
-
+ bin/console autoinstall [-h|--help|-?] [-v] [-a]
+
Description
Installs Friendica with data based on the htconfig.php file
-h|--help|-? Show help information
-v Show more debug information.
-a All setup checks are required (except .htaccess)
+ -f prepared config file (e.g. ".htconfig.php" itself)
HELP;
}
$db_user = '';
$db_pass = '';
$db_data = '';
- require_once 'htconfig.php';
+
+ $config_file = $this->getOption('f', 'htconfig.php');
+
+ $this->out("Using config $config_file...\n");
+ require_once $config_file;
Install::setInstallMode();
$errorMessage = $this->extractErrors($checkResults['basic']);
if ($errorMessage !== '') {
- throw new \RuntimeException($errorMessage);
+ throw new RuntimeException($errorMessage);
}
$this->out(" Complete!\n\n");
$errorMessage = $this->extractErrors($checkResults['db']);
if ($errorMessage !== '') {
- throw new \RuntimeException($errorMessage);
+ throw new RuntimeException($errorMessage);
}
$this->out(" Complete!\n\n");
$checkResults['data'] = Install::installDatabaseStructure();
if ($checkResults['data'] !== '') {
- throw new \RuntimeException("ERROR: DB Database creation error. Is the DB empty?\n");
+ throw new RuntimeException("ERROR: DB Database creation error. Is the DB empty?\n");
}
$this->out(" Complete!\n\n");
+ // Install theme
+ $this->out("Installing theme\n");
+ if (!empty(Config::get('system', 'theme'))) {
+ Theme::install(Config::get('system', 'theme'));
+ $this->out(" Complete\n\n");
+ } else {
+ $this->out(" Theme setting is empty. Please check the file htconfig.php\n\n");
+ }
+
// Copy config file
$this->out("Saving config file...\n");
- if (!copy('htconfig.php', '.htconfig.php')) {
- throw new \RuntimeException("ERROR: Saving config file failed. Please copy .htautoinstall.php to .htconfig.php manually.\n");
+ if ($config_file != '.htconfig.php' && !copy($config_file, '.htconfig.php')) {
+ throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '.htconfig.php' manually.\n");
}
$this->out(" Complete!\n\n");
$this->out("\nInstallation is finished\n");
Install::checkFunctions($checks);
Install::checkImagick($checks);
- Install::checkHtConfig($checks);
+ Install::checkLocalIni($checks);
Install::checkSmarty3($checks);
Install::checkKeys($checks);
- if (!empty($app->config['php_path'])) {
- Install::checkPHP($app->config['php_path'], $checks);
+ if (!empty(Config::get('config', 'php_path'))) {
+ Install::checkPHP(Config::get('config', 'php_path'), $checks);
} else {
- throw new \RuntimeException(" ERROR: The php_path is not set in the config. Please check the file .htconfig.php.\n");
+ throw new RuntimeException(" ERROR: The php_path is not set in the config.\n");
}
$this->out(" NOTICE: Not checking .htaccess/URL-Rewrite during CLI installation.\n");
);
- if (!dba::connect($db_host, $db_user, $db_pass, $db_data)) {
+ if (!DBA::connect($db_host, $db_user, $db_pass, $db_data)) {
$result['status'] = false;
$result['help'] = 'Failed, please check your MySQL settings and credentials.';
}