diff --git a/src/Composer/Command/StatusCommand.php b/src/Composer/Command/StatusCommand.php index 116d5b99e..6d836d2bf 100644 --- a/src/Composer/Command/StatusCommand.php +++ b/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); } }