|
|
|
@ -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') { |
|
|
|
|