Skip to content

Commit

Permalink
MDL-36963 Improve mdeploy worker::remove_directory() method
Browse files Browse the repository at this point in the history
The additional parameter allows to use this method without actual
removing the root of the path. That is, it is now possible to remove
the content of a folder only.
  • Loading branch information
mudrd8mz authored and danpoltawski committed Dec 6, 2012
1 parent b68bbc5 commit 75879a9
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions mdeploy.php
Expand Up @@ -1207,11 +1207,15 @@ protected function move_directory_into($source, $target, $keepsourceroot = false
* Deletes the given directory recursively * Deletes the given directory recursively
* *
* @param string $path full path to the directory * @param string $path full path to the directory
* @param bool $keeppathroot should the root of the $path be kept (i.e. remove the content only) or removed too
* @return bool
*/ */
protected function remove_directory($path) { protected function remove_directory($path, $keeppathroot = false) {

$result = true;


if (!file_exists($path)) { if (!file_exists($path)) {
return; return $result;
} }


if (is_dir($path)) { if (is_dir($path)) {
Expand All @@ -1228,15 +1232,22 @@ protected function remove_directory($path) {
} }


if (is_dir($filepath)) { if (is_dir($filepath)) {
$this->remove_directory($filepath); $result = $result && $this->remove_directory($filepath, false);


} else { } else {
unlink($filepath); $result = $result && unlink($filepath);
} }
} }


closedir($handle); closedir($handle);
return rmdir($path);
if (!$keeppathroot) {
$result = $result && rmdir($path);
}

clearstatcache();

return $result;
} }


/** /**
Expand Down

0 comments on commit 75879a9

Please sign in to comment.