mirror of
https://github.com/nextcloud/server.git
synced 2026-02-20 00:12:30 -05:00
Merge pull request #46169 from nextcloud/enh/support-profiler-in-occ
Support profiler in occ commands
This commit is contained in:
commit
55f3e53695
2 changed files with 32 additions and 5 deletions
31
console.php
31
console.php
|
|
@ -10,6 +10,10 @@ declare(strict_types=1);
|
|||
require_once __DIR__ . '/lib/versioncheck.php';
|
||||
|
||||
use OC\Console\Application;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\Diagnostics\IEventLogger;
|
||||
use OCP\IRequest;
|
||||
use OCP\Profiler\IProfiler;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
|
||||
|
|
@ -67,9 +71,34 @@ try {
|
|||
echo "Additionally the function 'pcntl_signal' and 'pcntl_signal_dispatch' need to be enabled in your php.ini." . PHP_EOL;
|
||||
}
|
||||
|
||||
$eventLogger = \OCP\Server::get(IEventLogger::class);
|
||||
$eventLogger->start('console:build_application', 'Build Application instance and load commands');
|
||||
|
||||
$application = \OCP\Server::get(Application::class);
|
||||
$application->loadCommands(new ArgvInput(), new ConsoleOutput());
|
||||
$application->run();
|
||||
|
||||
$eventLogger->end('console:build_application');
|
||||
$eventLogger->start('console:run', 'Run the command');
|
||||
|
||||
$application->setAutoExit(false);
|
||||
$exitCode = $application->run();
|
||||
|
||||
$eventLogger->end('console:run');
|
||||
|
||||
$profiler = \OCP\Server::get(IProfiler::class);
|
||||
if ($profiler->isEnabled()) {
|
||||
$eventLogger->end('runtime');
|
||||
$profile = $profiler->collect(\OCP\Server::get(IRequest::class), new Response());
|
||||
$profile->setMethod('occ');
|
||||
$profile->setUrl(implode(' ', $argv));
|
||||
$profiler->saveProfile($profile);
|
||||
}
|
||||
|
||||
if ($exitCode > 255) {
|
||||
$exitCode = 255;
|
||||
}
|
||||
|
||||
exit($exitCode);
|
||||
} catch (Exception $ex) {
|
||||
exceptionHandler($ex);
|
||||
} catch (Error $ex) {
|
||||
|
|
|
|||
|
|
@ -388,8 +388,8 @@ class AppManager implements IAppManager {
|
|||
if ($appPath === false) {
|
||||
return;
|
||||
}
|
||||
$eventLogger = \OC::$server->get(\OCP\Diagnostics\IEventLogger::class);
|
||||
$eventLogger->start("bootstrap:load_app:$app", "Load $app");
|
||||
$eventLogger = \OC::$server->get(IEventLogger::class);
|
||||
$eventLogger->start("bootstrap:load_app:$app", "Load app: $app");
|
||||
|
||||
// in case someone calls loadApp() directly
|
||||
\OC_App::registerAutoloading($app, $appPath);
|
||||
|
|
@ -400,8 +400,6 @@ class AppManager implements IAppManager {
|
|||
|
||||
$hasAppPhpFile = is_file($appPath . '/appinfo/app.php');
|
||||
|
||||
$eventLogger = \OC::$server->get(IEventLogger::class);
|
||||
$eventLogger->start('bootstrap:load_app_' . $app, 'Load app: ' . $app);
|
||||
if ($isBootable && $hasAppPhpFile) {
|
||||
$this->logger->error('/appinfo/app.php is not loaded when \OCP\AppFramework\Bootstrap\IBootstrap on the application class is used. Migrate everything from app.php to the Application class.', [
|
||||
'app' => $app,
|
||||
|
|
|
|||
Loading…
Reference in a new issue