Fixed incorrect removing directory contents when using symlinks.

This commit is contained in:
Batandwa 2016-12-24 17:17:52 +07:00 committed by Dmitry Khomutov
parent 645433cb6b
commit e4db6efaf3

View file

@ -270,13 +270,20 @@ class Build extends BuildBase
*/
public function removeBuildDirectory()
{
$buildPath = $this->getBuildPath();
// Get the path and remove the trailing slash as this may prompt PHP
// to see this as a directory even if it's a link.
$buildPath = rtrim($this->getBuildPath(), '/');
if (!$buildPath || !is_dir($buildPath)) {
return;
}
exec(sprintf(IS_WIN ? 'rmdir /S /Q "%s"' : 'rm -Rf "%s"', $buildPath));
if (is_link($buildPath)) {
// Remove the symlink without using recursive.
exec(sprintf(IS_WIN ? 'rmdir /S /Q "%s"' : 'rm "%s"', $buildPath));
} else {
exec(sprintf(IS_WIN ? 'rmdir /S /Q "%s"' : 'rm -Rf "%s"', $buildPath));
}
}
/**