1
0
Fork 0

Merge remote-tracking branch 'christeredvartsen/script-dev-aware'

pull/1341/merge
Jordi Boggiano 2012-11-18 12:04:19 +01:00
commit 2719fb7e20
5 changed files with 35 additions and 15 deletions

View File

@ -179,7 +179,7 @@ class Installer
if ($this->runScripts) {
// dispatch pre event
$eventName = $this->update ? ScriptEvents::PRE_UPDATE_CMD : ScriptEvents::PRE_INSTALL_CMD;
$this->eventDispatcher->dispatchCommandEvent($eventName);
$this->eventDispatcher->dispatchCommandEvent($eventName, $this->devMode);
}
$this->suggestedPackages = array();
@ -227,7 +227,7 @@ class Installer
if ($this->runScripts) {
// dispatch post event
$eventName = $this->update ? ScriptEvents::POST_UPDATE_CMD : ScriptEvents::POST_INSTALL_CMD;
$this->eventDispatcher->dispatchCommandEvent($eventName);
$this->eventDispatcher->dispatchCommandEvent($eventName, $this->devMode);
}
}
@ -487,7 +487,7 @@ class Installer
$event = 'Composer\Script\ScriptEvents::PRE_PACKAGE_'.strtoupper($operation->getJobType());
if (defined($event) && $this->runScripts) {
$this->eventDispatcher->dispatchPackageEvent(constant($event), $operation);
$this->eventDispatcher->dispatchPackageEvent(constant($event), $this->devMode, $operation);
}
// not installing from lock, force dev packages' references if they're in root package refs
@ -516,7 +516,7 @@ class Installer
$event = 'Composer\Script\ScriptEvents::POST_PACKAGE_'.strtoupper($operation->getJobType());
if (defined($event) && $this->runScripts) {
$this->eventDispatcher->dispatchPackageEvent(constant($event), $operation);
$this->eventDispatcher->dispatchPackageEvent(constant($event), $this->devMode, $operation);
}
if (!$this->dryRun) {

View File

@ -37,18 +37,25 @@ class Event
*/
private $io;
/**
* @var boolean Dev mode flag
*/
private $devMode;
/**
* Constructor.
*
* @param string $name The event name
* @param Composer $composer The composer object
* @param IOInterface $io The IOInterface object
* @param boolean $devMode Whether or not we are in dev mode
*/
public function __construct($name, Composer $composer, IOInterface $io)
public function __construct($name, Composer $composer, IOInterface $io, $devMode)
{
$this->name = $name;
$this->composer = $composer;
$this->io = $io;
$this->devMode = $devMode;
}
/**
@ -80,4 +87,14 @@ class Event
{
return $this->io;
}
/**
* Return the dev mode flag
*
* @return boolean
*/
public function isDevMode()
{
return $this->devMode;
}
}

View File

@ -55,21 +55,23 @@ class EventDispatcher
* Dispatch a package event.
*
* @param string $eventName The constant in ScriptEvents
* @param boolean $devMode Whether or not we are in dev mode
* @param OperationInterface $operation The package being installed/updated/removed
*/
public function dispatchPackageEvent($eventName, OperationInterface $operation)
public function dispatchPackageEvent($eventName, $devMode, OperationInterface $operation)
{
$this->doDispatch(new PackageEvent($eventName, $this->composer, $this->io, $operation));
$this->doDispatch(new PackageEvent($eventName, $this->composer, $this->io, $devMode, $operation));
}
/**
* Dispatch a command event.
*
* @param string $eventName The constant in ScriptEvents
* @param string $eventName The constant in ScriptEvents
* @param boolean $devMode Whether or not we are in dev mode
*/
public function dispatchCommandEvent($eventName)
public function dispatchCommandEvent($eventName, $devMode)
{
$this->doDispatch(new CommandEvent($eventName, $this->composer, $this->io));
$this->doDispatch(new CommandEvent($eventName, $this->composer, $this->io, $devMode));
}
/**

View File

@ -34,11 +34,12 @@ class PackageEvent extends Event
* @param string $name The event name
* @param Composer $composer The composer objet
* @param IOInterface $io The IOInterface object
* @param boolean $devMode Whether or not we are in dev mode
* @param OperationInterface $operation The operation object
*/
public function __construct($name, Composer $composer, IOInterface $io, OperationInterface $operation)
public function __construct($name, Composer $composer, IOInterface $io, $devMode, OperationInterface $operation)
{
parent::__construct($name, $composer, $io);
parent::__construct($name, $composer, $io, $devMode);
$this->operation = $operation;
}

View File

@ -32,7 +32,7 @@ class EventDispatcherTest extends TestCase
->method('write')
->with('<error>Script Composer\Test\Script\EventDispatcherTest::call handling the post-install-cmd event terminated with an exception</error>');
$dispatcher->dispatchCommandEvent("post-install-cmd");
$dispatcher->dispatchCommandEvent("post-install-cmd", false);
}
/**
@ -60,7 +60,7 @@ class EventDispatcherTest extends TestCase
->method('execute')
->with($command);
$dispatcher->dispatchCommandEvent("post-install-cmd");
$dispatcher->dispatchCommandEvent("post-install-cmd", false);
}
public function testDispatcherCanExecuteCliAndPhpInSameEventScriptStack()
@ -95,7 +95,7 @@ class EventDispatcherTest extends TestCase
->with('Composer\Test\Script\EventDispatcherTest', 'someMethod')
->will($this->returnValue(true));
$dispatcher->dispatchCommandEvent("post-install-cmd");
$dispatcher->dispatchCommandEvent("post-install-cmd", false);
}
private function getDispatcherStubForListenersTest($listeners, $io)