aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Kevin Papst <kevinpapst@users.noreply.github.com> 2017-12-10 22:09:54 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2017-12-10 22:09:54 +0100
commit5c52d9b34bb1f1285f92dd557bb8b8cb222b50f4 (patch)
tree68c8b7b767951480a34cab5ab82fbfd34d15e2aa
parent3902d3f43330504945e78627b4c49e67ae88aea9 (diff)
Check requirement in CLI script (#1711)
* check requirements in actualize_script before executing, fixes #1710 * removed empty whiteline * testing all requirements * incorporated code review feedback * removed code that is already executed in _cli.php * added newline at eof * fixed include problems * fixed include problems
-rwxr-xr-xapp/actualize_script.php12
-rw-r--r--cli/_cli.php17
-rwxr-xr-xcli/do-install.php15
3 files changed, 22 insertions, 22 deletions
diff --git a/app/actualize_script.php b/app/actualize_script.php
index deaa1bf7c..0bb1f166f 100755
--- a/app/actualize_script.php
+++ b/app/actualize_script.php
@@ -1,6 +1,5 @@
<?php
-require(dirname(__FILE__) . '/../constants.php');
-require(LIB_PATH . '/lib_rss.php'); //Includes class autoloader
+require(__DIR__ . '/../cli/_cli.php');
session_cache_limiter('');
ob_implicit_flush(false);
@@ -12,7 +11,6 @@ if (defined('STDOUT')) {
fwrite(STDOUT, 'Starting feed actualization at ' . $begin_date->format('c') . "\n"); //Unbuffered
}
-
// Set the header params ($_GET) to call the FRSS application.
$_GET['c'] = 'feed';
$_GET['a'] = 'actualize';
@@ -20,15 +18,15 @@ $_GET['ajax'] = 1;
$_GET['force'] = true;
$_SERVER['HTTP_HOST'] = '';
-
$log_file = join_path(USERS_PATH, '_', 'log.txt');
-
$app = new FreshRSS();
$system_conf = Minz_Configuration::get('system');
$system_conf->auth_type = 'none'; // avoid necessity to be logged in (not saved!)
-FreshRSS_Context::$isCli = true;
+
+// make sure the PHP setup of the CLI environment is compatible with FreshRSS as well
+performRequirementCheck($system_conf->db['type']);
// Create the list of users to actualize.
// Users are processed in a random order but always start with admin
@@ -39,7 +37,6 @@ if ($system_conf->default_user !== '') {
$users = array_unique($users);
}
-
$limits = $system_conf->limits;
$min_last_activity = time() - $limits['max_inactivity'];
foreach ($users as $user) {
@@ -74,7 +71,6 @@ foreach ($users as $user) {
}
}
-
Minz_Log::notice('FreshRSS actualize done.', $log_file);
if (defined('STDOUT')) {
fwrite(STDOUT, 'Done.' . "\n");
diff --git a/cli/_cli.php b/cli/_cli.php
index 1b26ea738..fb35c4afb 100644
--- a/cli/_cli.php
+++ b/cli/_cli.php
@@ -5,6 +5,7 @@ if (php_sapi_name() !== 'cli') {
require(dirname(__FILE__) . '/../constants.php');
require(LIB_PATH . '/lib_rss.php');
+require(LIB_PATH . '/lib_install.php');
Minz_Configuration::register('system',
DATA_PATH . '/config.php',
@@ -47,3 +48,19 @@ function done($ok = true) {
fwrite(STDERR, 'Result: ' . ($ok ? 'success' : 'fail') . "\n");
exit($ok ? 0 : 1);
}
+
+function performRequirementCheck($databaseType) {
+ $requirements = checkRequirements($databaseType);
+ if ($requirements['all'] !== 'ok') {
+ $message = 'FreshRSS install failed requirements:' . "\n";
+ foreach ($requirements as $requirement => $check) {
+ if ($check !== 'ok' && !in_array($requirement, array('all', 'pdo', 'message'))) {
+ $message .= '• ' . $requirement . "\n";
+ }
+ }
+ if (!empty($requirements['message'])) {
+ $message .= '• ' . $requirements['message'] . "\n";
+ }
+ fail($message);
+ }
+}
diff --git a/cli/do-install.php b/cli/do-install.php
index 74bbdfcd4..37db85575 100755
--- a/cli/do-install.php
+++ b/cli/do-install.php
@@ -1,7 +1,6 @@
#!/usr/bin/php
<?php
require('_cli.php');
-require(LIB_PATH . '/lib_install.php');
if (!file_exists(DATA_PATH . '/do-install.txt')) {
fail('FreshRSS looks to be already installed! Please use `./cli/reconfigure.php` instead.');
@@ -66,19 +65,7 @@ foreach ($dBparams as $dBparam) {
}
}
-$requirements = checkRequirements($config['db']['type']);
-if ($requirements['all'] !== 'ok') {
- $message = 'FreshRSS install failed requirements:' . "\n";
- foreach ($requirements as $requirement => $check) {
- if ($check !== 'ok' && !in_array($requirement, array('all', 'pdo', 'message'))) {
- $message .= '• ' . $requirement . "\n";
- }
- }
- if (!empty($requirements['message'])) {
- $message .= '• ' . $requirements['message'] . "\n";
- }
- fail($message);
-}
+performRequirementCheck($config['db']['type']);
if (!FreshRSS_user_Controller::checkUsername($options['default_user'])) {
fail('FreshRSS error: invalid default username “' . $options['default_user']