1
0
Fork 0

Update src/Composer/Downloader/ArchiveDownloader.php

Fix to single-file archive
pull/977/head
Артём Курапов 2012-08-05 03:15:55 +03:00
parent ece954a7a4
commit 091b2e86db
1 changed files with 15 additions and 12 deletions

View File

@ -47,22 +47,25 @@ abstract class ArchiveDownloader extends FileDownloader
if (1 === count($contentDir)) {
$contentDir = $contentDir[0];
// Rename the content directory to avoid error when moving up
// a child folder with the same name
$temporaryName = md5(time().rand());
rename($contentDir, $temporaryName);
$contentDir = $temporaryName;
foreach (array_merge(glob($contentDir . '/.*'), glob($contentDir . '/*')) as $file) {
if (trim(basename($file), '.')) {
rename($file, $path . '/' . basename($file));
}
}
if(is_file($contentDir)){
rename($contentDir, $path . '/' . basename($fileName));
unlink($contentDir);
}
else{
// Rename the content directory to avoid error when moving up
// a child folder with the same name
$temporaryName = md5(time().rand());
rename($contentDir, $temporaryName);
$contentDir = $temporaryName;
foreach (array_merge(glob($contentDir . '/.*'), glob($contentDir . '/*')) as $file) {
if (trim(basename($file), '.')) {
rename($file, $path . '/' . basename($file));
}
}
rmdir($contentDir);
}
}