Browse Source

Rollback installation of plugins if corrupted, fixes #5130

Niels Keurentjes 9 years ago
parent
commit
63d3964ab5
1 changed files with 8 additions and 1 deletions
  1. 8 1
      src/Composer/Installer/PluginInstaller.php

+ 8 - 1
src/Composer/Installer/PluginInstaller.php

@@ -59,7 +59,14 @@ class PluginInstaller extends LibraryInstaller
         }
 
         parent::install($repo, $package);
-        $this->composer->getPluginManager()->registerPackage($package, true);
+        try {
+            $this->composer->getPluginManager()->registerPackage($package, true);
+        } catch(\Exception $e) {
+            // Rollback installation
+            $this->io->writeError('Plugin installation failed, rolling back');
+            parent::uninstall($repo, $package);
+            throw $e;
+        }
     }
 
     /**