summaryrefslogtreecommitdiffstats
path: root/lib/private/Console/Application.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Console/Application.php')
-rw-r--r--lib/private/Console/Application.php63
1 files changed, 34 insertions, 29 deletions
diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php
index 299b23714b6..cd76b43f095 100644
--- a/lib/private/Console/Application.php
+++ b/lib/private/Console/Application.php
@@ -26,6 +26,7 @@
*/
namespace OC\Console;
+use OC\NeedsUpdateException;
use OC_App;
use OCP\AppFramework\QueryException;
use OCP\Console\ConsoleEvent;
@@ -84,39 +85,43 @@ class Application {
if ($input->getOption('no-warnings')) {
$output->setVerbosity(OutputInterface::VERBOSITY_QUIET);
}
- require_once __DIR__ . '/../../../core/register_command.php';
- if ($this->config->getSystemValue('installed', false)) {
- if (\OCP\Util::needUpgrade()) {
- if ($input->getArgument('command') !== '_completion') {
- $output->writeln("Nextcloud or one of the apps require upgrade - only a limited number of commands are available");
- $output->writeln("You may use your browser or the occ upgrade command to do the upgrade");
- }
- } elseif ($this->config->getSystemValue('maintenance', false)) {
- if ($input->getArgument('command') !== '_completion') {
- $output->writeln("Nextcloud is in maintenance mode - no apps have been loaded");
- }
- } else {
- OC_App::loadApps();
- foreach (\OC::$server->getAppManager()->getInstalledApps() as $app) {
- $appPath = \OC_App::getAppPath($app);
- if($appPath === false) {
- continue;
- }
- // load commands using info.xml
- $info = \OC_App::getAppInfo($app);
- if (isset($info['commands'])) {
- $this->loadCommandsFromInfoXml($info['commands']);
+ try {
+ require_once __DIR__ . '/../../../core/register_command.php';
+ if ($this->config->getSystemValue('installed', false)) {
+ if (\OCP\Util::needUpgrade()) {
+ throw new NeedsUpdateException();
+ } elseif ($this->config->getSystemValue('maintenance', false)) {
+ if ($input->getArgument('command') !== '_completion') {
+ $output->writeln("Nextcloud is in maintenance mode - no apps have been loaded");
}
- // load from register_command.php
- \OC_App::registerAutoloading($app, $appPath);
- $file = $appPath . '/appinfo/register_command.php';
- if (file_exists($file)) {
- require $file;
+ } else {
+ OC_App::loadApps();
+ foreach (\OC::$server->getAppManager()->getInstalledApps() as $app) {
+ $appPath = \OC_App::getAppPath($app);
+ if ($appPath === false) {
+ continue;
+ }
+ // load commands using info.xml
+ $info = \OC_App::getAppInfo($app);
+ if (isset($info['commands'])) {
+ $this->loadCommandsFromInfoXml($info['commands']);
+ }
+ // load from register_command.php
+ \OC_App::registerAutoloading($app, $appPath);
+ $file = $appPath . '/appinfo/register_command.php';
+ if (file_exists($file)) {
+ require $file;
+ }
}
}
+ } else if ($input->getArgument('command') !== '_completion') {
+ $output->writeln("Nextcloud is not installed - only a limited number of commands are available");
+ }
+ } catch(NeedsUpdateException $e) {
+ if ($input->getArgument('command') !== '_completion') {
+ $output->writeln("Nextcloud or one of the apps require upgrade - only a limited number of commands are available");
+ $output->writeln("You may use your browser or the occ upgrade command to do the upgrade");
}
- } else if ($input->getArgument('command') !== '_completion') {
- $output->writeln("Nextcloud is not installed - only a limited number of commands are available");
}
if ($input->getFirstArgument() !== 'check') {