DirectoryCleanupCommand   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 4
Bugs 0 Features 1
Metric Value
eloc 19
c 4
b 0
f 1
dl 0
loc 39
rs 10
wmc 4

3 Methods

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