1263bd966e33f0399dac123c2d9e6a401996ed15
[pharext/pharext] / src / pharext / Task / Cleanup.php
1 <?php
2
3 namespace pharext\Task;
4
5 use pharext\Task;
6
7 use FilesystemIterator;
8 use RecursiveDirectoryIterator;
9 use RecursiveIteratorIterator;
10
11 /**
12 * Recursively cleanup FS entries
13 */
14 class Cleanup implements Task
15 {
16 /**
17 * @var string
18 */
19 private $rm;
20
21 public function __construct($rm) {
22 $this->rm = $rm;
23 }
24
25 /**
26 * @param bool $verbose
27 */
28 public function run($verbose = false) {
29 if (is_dir($this->rm)) {
30 $rdi = new RecursiveDirectoryIterator($this->rm,
31 FilesystemIterator::CURRENT_AS_PATHNAME |
32 FilesystemIterator::SKIP_DOTS);
33 $rii = new RecursiveIteratorIterator($rdi,
34 RecursiveIteratorIterator::CHILD_FIRST);
35 foreach ($rii as $path) {
36 if ($rii->isDir()) {
37 rmdir($path);
38 } else {
39 unlink($path);
40 }
41 }
42 rmdir($this->rm);
43 } else {
44 @unlink($this->rm);
45 }
46 }
47 }