Browse Source

Merge remote-tracking branch 'fabpot/more-debug'

Jordi Boggiano 8 years ago
parent
commit
8ad6385ffb

+ 32 - 0
src/Composer/Installer.php

@@ -496,6 +496,38 @@ class Installer
             $devPackages = null;
         }
 
+        if ($operations) {
+            $installs = $updates = $uninstalls = array();
+            foreach ($operations as $operation) {
+                if ($operation instanceof InstallOperation) {
+                    $installs[] = $operation->getPackage()->getPrettyName().':'.$operation->getPackage()->getFullPrettyVersion();
+                } elseif ($operation instanceof UpdateOperation) {
+                    $updates[] = $operation->getTargetPackage()->getPrettyName().':'.$operation->getTargetPackage()->getFullPrettyVersion();
+                } elseif ($operation instanceof UninstallOperation) {
+                    $uninstalls[] = $operation->getPackage()->getPrettyName();
+                }
+            }
+
+            $this->io->writeError(
+                sprintf("<info>Package operations: %d install%s, %d update%s, %d removal%s</info>",
+                count($installs),
+                1 === count($installs) ? '' : 's',
+                count($updates),
+                1 === count($updates) ? '' : 's',
+                count($uninstalls),
+                1 === count($uninstalls) ? '' : 's')
+            );
+            if ($installs) {
+                $this->io->writeError("Installs: ".implode(', ', $installs), true, IOInterface::VERBOSE);
+            }
+            if ($updates) {
+                $this->io->writeError("Updates: ".implode(', ', $updates), true, IOInterface::VERBOSE);
+            }
+            if ($uninstalls) {
+                $this->io->writeError("Removals: ".implode(', ', $uninstalls), true, IOInterface::VERBOSE);
+            }
+        }
+
         foreach ($operations as $operation) {
             // collect suggestions
             if ('install' === $operation->getJobType()) {

+ 1 - 0
tests/Composer/Test/Fixtures/installer/abandoned-listed.test

@@ -26,6 +26,7 @@ install
 --EXPECT-OUTPUT--
 Loading composer repositories with package information
 Updating dependencies (including require-dev)
+Package operations: 2 installs, 0 updates, 0 removals
 <warning>Package a/a is abandoned, you should avoid using it. No replacement was suggested.</warning>
 <warning>Package c/c is abandoned, you should avoid using it. Use b/b instead.</warning>
 Writing lock file

+ 1 - 0
tests/Composer/Test/Fixtures/installer/github-issues-4795-2.test

@@ -36,6 +36,7 @@ update a b --with-dependencies
 --EXPECT-OUTPUT--
 Loading composer repositories with package information
 Updating dependencies (including require-dev)
+Package operations: 0 installs, 2 updates, 0 removals
 Writing lock file
 Generating autoload files
 

+ 1 - 0
tests/Composer/Test/Fixtures/installer/suggest-installed.test

@@ -21,6 +21,7 @@ install
 --EXPECT-OUTPUT--
 Loading composer repositories with package information
 Updating dependencies (including require-dev)
+Package operations: 2 installs, 0 updates, 0 removals
 Writing lock file
 Generating autoload files
 

+ 1 - 0
tests/Composer/Test/Fixtures/installer/suggest-prod.test

@@ -19,6 +19,7 @@ install --no-dev
 --EXPECT-OUTPUT--
 Loading composer repositories with package information
 Updating dependencies
+Package operations: 1 install, 0 updates, 0 removals
 Writing lock file
 Generating autoload files
 

+ 1 - 0
tests/Composer/Test/Fixtures/installer/suggest-replaced.test

@@ -21,6 +21,7 @@ install
 --EXPECT-OUTPUT--
 Loading composer repositories with package information
 Updating dependencies (including require-dev)
+Package operations: 2 installs, 0 updates, 0 removals
 Writing lock file
 Generating autoload files
 

+ 1 - 0
tests/Composer/Test/Fixtures/installer/suggest-uninstalled.test

@@ -19,6 +19,7 @@ install
 --EXPECT-OUTPUT--
 Loading composer repositories with package information
 Updating dependencies (including require-dev)
+Package operations: 1 install, 0 updates, 0 removals
 a/a suggests installing b/b (an obscure reason)
 Writing lock file
 Generating autoload files