Browse Source

Add command name to the PreCommandRun event

Jordi Boggiano 7 years ago
parent
commit
352aefe48c
2 changed files with 20 additions and 3 deletions
  1. 1 1
      src/Composer/Command/BaseCommand.php
  2. 19 2
      src/Composer/Plugin/PreCommandRunEvent.php

+ 1 - 1
src/Composer/Command/BaseCommand.php

@@ -131,7 +131,7 @@ abstract class BaseCommand extends Command
         if (null === $composer) {
             $composer = Factory::createGlobal($this->getIO(), false);
         }
-        $preCommandRunEvent = new PreCommandRunEvent(PluginEvents::PRE_COMMAND_RUN, $input);
+        $preCommandRunEvent = new PreCommandRunEvent(PluginEvents::PRE_COMMAND_RUN, $input, $this->getName());
         $composer->getEventDispatcher()->dispatch($preCommandRunEvent->getName(), $preCommandRunEvent);
 
         if (true === $input->hasParameterOption(array('--no-ansi')) && $input->hasOption('no-progress')) {

+ 19 - 2
src/Composer/Plugin/PreCommandRunEvent.php

@@ -27,16 +27,23 @@ class PreCommandRunEvent extends Event
      */
     private $input;
 
+    /**
+     * @var string
+     */
+    private $command;
+
     /**
      * Constructor.
      *
-     * @param string         $name         The event name
+     * @param string         $name    The event name
      * @param InputInterface $input
+     * @param string         $command The command about to be executed
      */
-    public function __construct($name, InputInterface $input)
+    public function __construct($name, InputInterface $input, $command)
     {
         parent::__construct($name);
         $this->input = $input;
+        $this->command = $command;
     }
 
     /**
@@ -48,4 +55,14 @@ class PreCommandRunEvent extends Event
     {
         return $this->input;
     }
+
+    /**
+     * Returns the command about to be executed
+     *
+     * @return string
+     */
+    public function getCommand()
+    {
+        return $this->command;
+    }
 }