added support for nested location of composer.json files within artifacts
parent
83bb38de56
commit
f25bfe09c5
|
@ -69,12 +69,23 @@ class ArtifactRepository extends ArrayRepository
|
|||
|
||||
private function getComposerInformation(\SplFileInfo $file)
|
||||
{
|
||||
$composerFile = "zip://{$file->getPathname()}#composer.json";
|
||||
$json = @file_get_contents($composerFile);
|
||||
if (!$json) {
|
||||
$zip = new \ZipArchive();
|
||||
$zip->open($file->getPathname());
|
||||
|
||||
if (0 == $zip->numFiles) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$foundFileIndex = $zip->locateName('composer.json', \ZipArchive::FL_NODIR);
|
||||
if (false === $foundFileIndex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$configurationFileName = $zip->getNameIndex($foundFileIndex);
|
||||
|
||||
$composerFile = "zip://{$file->getPathname()}#$configurationFileName";
|
||||
$json = file_get_contents($composerFile);
|
||||
|
||||
$package = JsonFile::parseJson($json, $composerFile);
|
||||
$package['dist'] = array(
|
||||
'type' => 'zip',
|
||||
|
|
|
@ -22,6 +22,7 @@ class ArtifactRepositoryTest extends TestCase
|
|||
public function testExtractsConfigsFromZipArchives()
|
||||
{
|
||||
$expectedPackages = array(
|
||||
'composer/composer-1.0.0-alpha6',
|
||||
'vendor0/package0-0.0.1',
|
||||
'vendor1/package2-4.3.2',
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue