Browse Source

Merge pull request #8772 from villfa/fix/8771

Dispatch POST_STATUS_CMD even when there is no changes
Jordi Boggiano 4 years ago
parent
commit
19902ba6a9
1 changed files with 21 additions and 7 deletions
  1. 21 7
      src/Composer/Command/StatusCommand.php

+ 21 - 7
src/Composer/Command/StatusCommand.php

@@ -65,20 +65,37 @@ EOT
      */
     protected function execute(InputInterface $input, OutputInterface $output)
     {
-        // init repos
         $composer = $this->getComposer();
 
         $commandEvent = new CommandEvent(PluginEvents::COMMAND, 'status', $input, $output);
         $composer->getEventDispatcher()->dispatch($commandEvent->getName(), $commandEvent);
 
+        // Dispatch pre-status-command
+        $composer->getEventDispatcher()->dispatchScript(ScriptEvents::PRE_STATUS_CMD, true);
+
+        $exitCode = $this->doExecute($input, $output);
+
+        // Dispatch post-status-command
+        $composer->getEventDispatcher()->dispatchScript(ScriptEvents::POST_STATUS_CMD, true);
+
+        return $exitCode;
+    }
+
+    /**
+     * @param  InputInterface  $input
+     * @param  OutputInterface $output
+     * @return int
+     */
+    private function doExecute(InputInterface $input, OutputInterface $output)
+    {
+        // init repos
+        $composer = $this->getComposer();
+
         $installedRepo = $composer->getRepositoryManager()->getLocalRepository();
 
         $dm = $composer->getDownloadManager();
         $im = $composer->getInstallationManager();
 
-        // Dispatch pre-status-command
-        $composer->getEventDispatcher()->dispatchScript(ScriptEvents::PRE_STATUS_CMD, true);
-
         $errors = array();
         $io = $this->getIO();
         $unpushedChanges = array();
@@ -206,9 +223,6 @@ EOT
             $io->writeError('Use --verbose (-v) to see a list of files');
         }
 
-        // Dispatch post-status-command
-        $composer->getEventDispatcher()->dispatchScript(ScriptEvents::POST_STATUS_CMD, true);
-
         return ($errors ? self::EXIT_CODE_ERRORS : 0) + ($unpushedChanges ? self::EXIT_CODE_UNPUSHED_CHANGES : 0) + ($vcsVersionChanges ? self::EXIT_CODE_VERSION_CHANGES : 0);
     }
 }