ci4

Форк
0
93 строки · 2.1 Кб
1
<?php
2

3
declare(strict_types=1);
4

5
/**
6
 * This file is part of CodeIgniter 4 framework.
7
 *
8
 * (c) CodeIgniter Foundation <admin@codeigniter.com>
9
 *
10
 * For the full copyright and license information, please view
11
 * the LICENSE file that was distributed with this source code.
12
 */
13

14
namespace CodeIgniter\Commands\Housekeeping;
15

16
use CodeIgniter\CLI\BaseCommand;
17
use CodeIgniter\CLI\CLI;
18

19
/**
20
 * ClearLogs command.
21
 */
22
class ClearLogs extends BaseCommand
23
{
24
    /**
25
     * The group the command is lumped under
26
     * when listing commands.
27
     *
28
     * @var string
29
     */
30
    protected $group = 'Housekeeping';
31

32
    /**
33
     * The Command's name
34
     *
35
     * @var string
36
     */
37
    protected $name = 'logs:clear';
38

39
    /**
40
     * The Command's short description
41
     *
42
     * @var string
43
     */
44
    protected $description = 'Clears all log files.';
45

46
    /**
47
     * The Command's usage
48
     *
49
     * @var string
50
     */
51
    protected $usage = 'logs:clear [option';
52

53
    /**
54
     * The Command's options
55
     *
56
     * @var array<string, string>
57
     */
58
    protected $options = [
59
        '--force' => 'Force delete of all logs files without prompting.',
60
    ];
61

62
    /**
63
     * Actually execute a command.
64
     */
65
    public function run(array $params)
66
    {
67
        $force = array_key_exists('force', $params) || CLI::getOption('force');
68

69
        if (! $force && CLI::prompt('Are you sure you want to delete the logs?', ['n', 'y']) === 'n') {
70
            // @codeCoverageIgnoreStart
71
            CLI::error('Deleting logs aborted.', 'light_gray', 'red');
72
            CLI::error('If you want, use the "-force" option to force delete all log files.', 'light_gray', 'red');
73
            CLI::newLine();
74

75
            return;
76
            // @codeCoverageIgnoreEnd
77
        }
78

79
        helper('filesystem');
80

81
        if (! delete_files(WRITEPATH . 'logs', false, true)) {
82
            // @codeCoverageIgnoreStart
83
            CLI::error('Error in deleting the logs files.', 'light_gray', 'red');
84
            CLI::newLine();
85

86
            return;
87
            // @codeCoverageIgnoreEnd
88
        }
89

90
        CLI::write('Logs cleared.', 'green');
91
        CLI::newLine();
92
    }
93
}
94

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.