Completed
Pull Request — master (#22)
by Maria
01:23
created

DirectoryCleanupCommand   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 40
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 15 2
A deleteFilesIfOlderThanMinutes() 0 8 1
A deleteEmptySubdirectories() 0 8 1
1
<?php
2
3
namespace Spatie\DirectoryCleanup;
4
5
use Illuminate\Console\Command;
6
7
class DirectoryCleanupCommand extends Command
8
{
9
    protected $signature = 'clean:directories';
10
11
    protected $description = 'Clean up directories.';
12
13
    public function handle()
14
    {
15
        $this->comment('Cleaning directories...');
16
17
        $directories = collect(config('laravel-directory-cleanup.directories'));
18
19
        collect($directories)->each(function ($config, $directory) {
20
            $this->deleteFilesIfOlderThanMinutes($directory, $config['deleteAllOlderThanMinutes']);
21
            if (! empty($config['deleteEmptySubdirectories'])) {
22
                $this->deleteEmptySubdirectories($directory);
23
            }
24
        });
25
26
        $this->comment('All done!');
27
    }
28
29
    protected function deleteFilesIfOlderThanMinutes(string $directory, int $minutes)
30
    {
31
        $deletedFiles = app(DirectoryCleaner::class)
32
            ->setDirectory($directory)
33
            ->deleteFilesOlderThanMinutes($minutes);
34
35
        $this->info("Deleted {$deletedFiles->count()} file(s) from {$directory}.");
36
    }
37
38
    protected function deleteEmptySubdirectories(string $directory)
39
    {
40
        $deletedSubdirectories = app(DirectoryCleaner::class)
41
            ->setDirectory($directory)
42
            ->deleteEmptySubdirectories();
43
44
        $this->info("Deleted {$deletedSubdirectories->count()} directory(ies) from {$directory}.");
45
    }
46
}
47