Remove forced dir removal before install, fixes #3035
parent
f16e3a88e2
commit
71397f82e4
|
@ -107,8 +107,7 @@ class FileDownloader implements DownloaderInterface
|
||||||
|
|
||||||
protected function doDownload(PackageInterface $package, $path, $url)
|
protected function doDownload(PackageInterface $package, $path, $url)
|
||||||
{
|
{
|
||||||
$this->filesystem->removeDirectory($path);
|
$this->filesystem->emptyDirectory($path);
|
||||||
$this->filesystem->ensureDirectoryExists($path);
|
|
||||||
|
|
||||||
$fileName = $this->getFileName($package, $path);
|
$fileName = $this->getFileName($package, $path);
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ abstract class VcsDownloader implements DownloaderInterface, ChangeReportInterfa
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->io->write(" - Installing <info>" . $package->getName() . "</info> (<comment>" . VersionParser::formatVersion($package) . "</comment>)");
|
$this->io->write(" - Installing <info>" . $package->getName() . "</info> (<comment>" . VersionParser::formatVersion($package) . "</comment>)");
|
||||||
$this->filesystem->removeDirectory($path);
|
$this->filesystem->emptyDirectory($path);
|
||||||
|
|
||||||
$urls = $package->getSourceUrls();
|
$urls = $package->getSourceUrls();
|
||||||
while ($url = array_shift($urls)) {
|
while ($url = array_shift($urls)) {
|
||||||
|
|
|
@ -74,7 +74,25 @@ class Filesystem
|
||||||
{
|
{
|
||||||
$dir = rtrim($dir, '/\\');
|
$dir = rtrim($dir, '/\\');
|
||||||
|
|
||||||
return count($this->realpathGlob($dir.'/*') ?: array()) === 0 && count($this->realpathGlob($dir.'/.*') ?: array()) === 2;
|
return count($this->realpathGlob($dir.'/*')) === 0 && count($this->realpathGlob($dir.'/.*')) === 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function emptyDirectory($dir, $ensureDirectoryExists = true)
|
||||||
|
{
|
||||||
|
if ($ensureDirectoryExists) {
|
||||||
|
$this->ensureDirectoryExists($dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_dir($dir)) {
|
||||||
|
foreach ($this->realpathGlob(rtrim($dir, '\\/').'/*') as $path) {
|
||||||
|
$this->remove($path);
|
||||||
|
}
|
||||||
|
foreach ($this->realpathGlob(rtrim($dir, '\\/').'/.*') as $path) {
|
||||||
|
if (basename($path) !== '..' && basename($path) !== '.') {
|
||||||
|
$this->remove($path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue