summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--console.php13
-rw-r--r--core/command/check.php39
-rw-r--r--core/register_command.php1
-rw-r--r--lib/base.php51
4 files changed, 79 insertions, 25 deletions
diff --git a/console.php b/console.php
index a4d829f683a..7536908a5c1 100644
--- a/console.php
+++ b/console.php
@@ -24,6 +24,7 @@
*/
use Symfony\Component\Console\Application;
+use Symfony\Component\Console\Input\ArgvInput;
define('OC_CONSOLE', 1);
@@ -71,6 +72,18 @@ try {
} else {
echo "ownCloud is not installed - only a limited number of commands are available" . PHP_EOL;
}
+ $input = new ArgvInput();
+ if ($input->getFirstArgument() !== 'check') {
+ $errors = \OC_Util::checkServer(\OC::$server->getConfig());
+ if (!empty($errors)) {
+ foreach ($errors as $error) {
+ echo $error['error'] . "\n";
+ echo $error['hint'] . "\n\n";
+ }
+ exit(1);
+ }
+ }
+
$application->run();
} catch (Exception $ex) {
echo "An unhandled exception has been thrown:" . PHP_EOL;
diff --git a/core/command/check.php b/core/command/check.php
new file mode 100644
index 00000000000..9d0db3a726c
--- /dev/null
+++ b/core/command/check.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace OC\Core\Command;
+
+use OCP\IConfig;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Check extends Command {
+ /**
+ * @var IConfig
+ */
+ private $config;
+
+ public function __construct(IConfig $config) {
+ parent::__construct();
+ $this->config = $config;
+ }
+
+ protected function configure() {
+ $this
+ ->setName('check')
+ ->setDescription('check dependencies of the server environment')
+ ;
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $errors = \OC_Util::checkServer($this->config);
+ if (!empty($errors)) {
+ $errors = array_map( function($items) {
+ return (string)$items['error'];
+ }, $errors);
+ echo json_encode($errors);
+ return 1;
+ }
+ return 0;
+ }
+}
diff --git a/core/register_command.php b/core/register_command.php
index 67fdb6f808e..701fb10d1ba 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -26,6 +26,7 @@
/** @var $application Symfony\Component\Console\Application */
$application->add(new OC\Core\Command\Status);
+$application->add(new OC\Core\Command\Check(\OC::$server->getConfig()));
$application->add(new OC\Core\Command\App\CheckCode());
$application->add(new OC\Core\Command\L10n\CreateJs());
diff --git a/lib/base.php b/lib/base.php
index be397e52449..042419eff1d 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -588,35 +588,36 @@ class OC {
ini_set('session.cookie_secure', true);
}
- $errors = OC_Util::checkServer(\OC::$server->getConfig());
- if (count($errors) > 0) {
- if (self::$CLI) {
- // Convert l10n string into regular string for usage in database
- $staticErrors = [];
- foreach ($errors as $error) {
- echo $error['error'] . "\n";
- echo $error['hint'] . "\n\n";
- $staticErrors[] = [
- 'error' => (string) $error['error'],
- 'hint' => (string) $error['hint'],
- ];
- }
+ if (!defined('OC_CONSOLE')) {
+ $errors = OC_Util::checkServer(\OC::$server->getConfig());
+ if (count($errors) > 0) {
+ if (self::$CLI) {
+ // Convert l10n string into regular string for usage in database
+ $staticErrors = [];
+ foreach ($errors as $error) {
+ echo $error['error'] . "\n";
+ echo $error['hint'] . "\n\n";
+ $staticErrors[] = [
+ 'error' => (string)$error['error'],
+ 'hint' => (string)$error['hint'],
+ ];
+ }
- try {
- \OC::$server->getConfig()->setAppValue('core', 'cronErrors', json_encode($staticErrors));
- } catch(\Exception $e) {
- echo('Writing to database failed');
+ try {
+ \OC::$server->getConfig()->setAppValue('core', 'cronErrors', json_encode($staticErrors));
+ } catch (\Exception $e) {
+ echo('Writing to database failed');
+ }
+ exit(1);
+ } else {
+ OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
+ OC_Template::printGuestPage('', 'error', array('errors' => $errors));
+ exit;
}
- exit(1);
- } else {
- OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
- OC_Template::printGuestPage('', 'error', array('errors' => $errors));
- exit;
- }
- } elseif(self::$CLI && \OC::$server->getConfig()->getSystemValue('installed', false)) {
+ } elseif (self::$CLI && \OC::$server->getConfig()->getSystemValue('installed', false)) {
\OC::$server->getConfig()->deleteAppValue('core', 'cronErrors');
+ }
}
-
//try to set the session lifetime
$sessionLifeTime = self::getSessionLifeTime();
@ini_set('gc_maxlifetime', (string)$sessionLifeTime);