diff --git a/src/Composer/Package/Archiver/ArchiveManager.php b/src/Composer/Package/Archiver/ArchiveManager.php index be1d66bb8..383f83b72 100644 --- a/src/Composer/Package/Archiver/ArchiveManager.php +++ b/src/Composer/Package/Archiver/ArchiveManager.php @@ -142,6 +142,13 @@ class ArchiveManager } // Create the archive - return $usableArchiver->archive($sourcePath, $target, $format, $package->getArchiveExcludes()); + $archivePath = $usableArchiver->archive($sourcePath, $target, $format, $package->getArchiveExcludes()); + + //cleanup temporary download + if (!$package instanceof RootPackage) { + $filesystem->removeDirectory($sourcePath); + } + + return $archivePath; } } diff --git a/tests/Composer/Test/Package/Archiver/ArchiveManagerTest.php b/tests/Composer/Test/Package/Archiver/ArchiveManagerTest.php index 83c3de0b6..427b0d70c 100644 --- a/tests/Composer/Test/Package/Archiver/ArchiveManagerTest.php +++ b/tests/Composer/Test/Package/Archiver/ArchiveManagerTest.php @@ -49,6 +49,9 @@ class ArchiveManagerTest extends ArchiverTest $target = $this->getTargetName($package, 'tar'); $this->assertFileExists($target); + + $tmppath = sys_get_temp_dir().'/composer_archiver/'.$this->manager->getPackageFilename($package); + $this->assertFileNotExists($tmppath); unlink($target); }