1
0
Fork 0

Merge remote-tracking branch 'tot-ra/patch-2'

Conflicts:
	src/Composer/Downloader/ArchiveDownloader.php
pull/976/merge
Jordi Boggiano 2012-08-11 18:45:38 +02:00
commit ebc0f8884f
1 changed files with 14 additions and 9 deletions

View File

@ -47,18 +47,23 @@ 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());
$this->filesystem->rename($contentDir, $temporaryName);
$contentDir = $temporaryName;
if (is_file($contentDir)) {
$this->filesystem->rename($contentDir, $path . '/' . basename($contentDir));
} else {
// Rename the content directory to avoid error when moving up
// a child folder with the same name
$temporaryName = md5(time().rand());
$this->filesystem->rename($contentDir, $temporaryName);
$contentDir = $temporaryName;
foreach (array_merge(glob($contentDir . '/.*'), glob($contentDir . '/*')) as $file) {
if (trim(basename($file), '.')) {
$this->filesystem->rename($file, $path . '/' . basename($file));
foreach (array_merge(glob($contentDir . '/.*'), glob($contentDir . '/*')) as $file) {
if (trim(basename($file), '.')) {
$this->filesystem->rename($file, $path . '/' . basename($file));
}
}
rmdir($contentDir);
}
rmdir($contentDir);
}
} catch (\Exception $e) {
// clean up