From 71e0fba2169e44db52775d2d7be277ec260ff8ac Mon Sep 17 00:00:00 2001 From: Den Girnyk Date: Thu, 21 Jul 2016 15:32:31 +0300 Subject: [PATCH] Pass devMode from RunScriptCommand to Script\Event --- src/Composer/Command/RunScriptCommand.php | 8 +++++--- src/Composer/EventDispatcher/EventDispatcher.php | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Composer/Command/RunScriptCommand.php b/src/Composer/Command/RunScriptCommand.php index 6742f9034..879c84710 100644 --- a/src/Composer/Command/RunScriptCommand.php +++ b/src/Composer/Command/RunScriptCommand.php @@ -12,7 +12,7 @@ namespace Composer\Command; -use Composer\Script\CommandEvent; +use Composer\Script\Event as ScriptEvent; use Composer\Script\ScriptEvents; use Composer\Util\ProcessExecutor; use Symfony\Component\Console\Input\InputInterface; @@ -81,7 +81,9 @@ EOT } $composer = $this->getComposer(); - $hasListeners = $composer->getEventDispatcher()->hasEventListeners(new CommandEvent($script, $composer, $this->getIO())); + $devMode = $input->getOption('dev') || !$input->getOption('no-dev'); + $event = new ScriptEvent($script, $composer, $this->getIO(), $devMode); + $hasListeners = $composer->getEventDispatcher()->hasEventListeners($event); if (!$hasListeners) { throw new \InvalidArgumentException(sprintf('Script "%s" is not defined in this package', $script)); } @@ -96,7 +98,7 @@ EOT ProcessExecutor::setTimeout((int) $timeout); } - return $composer->getEventDispatcher()->dispatchScript($script, $input->getOption('dev') || !$input->getOption('no-dev'), $args); + return $composer->getEventDispatcher()->dispatchScript($script, $devMode, $args); } protected function listScripts() diff --git a/src/Composer/EventDispatcher/EventDispatcher.php b/src/Composer/EventDispatcher/EventDispatcher.php index 7d473c4ad..9a3bf1835 100644 --- a/src/Composer/EventDispatcher/EventDispatcher.php +++ b/src/Composer/EventDispatcher/EventDispatcher.php @@ -24,6 +24,7 @@ use Composer\Script; use Composer\Script\CommandEvent; use Composer\Script\PackageEvent; use Composer\Util\ProcessExecutor; +use Composer\Script\Event as ScriptEvent; use Symfony\Component\Process\PhpExecutableFinder; /** @@ -415,6 +416,10 @@ class EventDispatcher } $generator = $this->composer->getAutoloadGenerator(); + if ($event instanceof ScriptEvent) { + $generator->setDevMode($event->isDevMode()); + } + $packages = $this->composer->getRepositoryManager()->getLocalRepository()->getCanonicalPackages(); $packageMap = $generator->buildPackageMap($this->composer->getInstallationManager(), $package, $packages); $map = $generator->parseAutoloads($packageMap, $package);