add upgrade command before repair, handle NeedsUpgradeExcaption better
This commit is contained in:
parent
cfae91ab64
commit
817729dc3f
2 changed files with 37 additions and 32 deletions
|
@ -123,13 +123,13 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
|
|||
$application->add(new OC\Core\Command\Maintenance\Mimetype\UpdateDB(\OC::$server->getMimeTypeDetector(), \OC::$server->getMimeTypeLoader()));
|
||||
$application->add(new OC\Core\Command\Maintenance\Mimetype\UpdateJS(\OC::$server->getMimeTypeDetector()));
|
||||
$application->add(new OC\Core\Command\Maintenance\Mode(\OC::$server->getConfig()));
|
||||
$application->add(new OC\Core\Command\Maintenance\Repair(
|
||||
new \OC\Repair(\OC\Repair::getRepairSteps(), \OC::$server->getEventDispatcher()), \OC::$server->getConfig(),
|
||||
\OC::$server->getEventDispatcher()));
|
||||
$application->add(new OC\Core\Command\Maintenance\SingleUser(\OC::$server->getConfig()));
|
||||
$application->add(new OC\Core\Command\Maintenance\UpdateHtaccess());
|
||||
|
||||
$application->add(new OC\Core\Command\Upgrade(\OC::$server->getConfig(), \OC::$server->getLogger()));
|
||||
$application->add(new OC\Core\Command\Maintenance\Repair(
|
||||
new \OC\Repair(\OC\Repair::getRepairSteps(), \OC::$server->getEventDispatcher()), \OC::$server->getConfig(),
|
||||
\OC::$server->getEventDispatcher()));
|
||||
|
||||
$application->add(new OC\Core\Command\User\Add(\OC::$server->getUserManager(), \OC::$server->getGroupManager()));
|
||||
$application->add(new OC\Core\Command\User\Delete(\OC::$server->getUserManager()));
|
||||
|
|
|
@ -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;
|
||||
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 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 {
|
||||
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') {
|
||||
|
|
Loading…
Reference in a new issue