Fixed incorrect removing directory contents when using symlinks.

This commit is contained in:
Batandwa Colani 2016-09-30 00:25:52 +02:00
parent 64b0f60368
commit b5c68f2a02

View file

@ -269,13 +269,20 @@ class Build extends BuildBase
*/ */
public function removeBuildDirectory() 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)) { if (!$buildPath || !is_dir($buildPath)) {
return; 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));
}
} }
/** /**