ClickHouse

Форк
0
/
CommandRemove.cpp 
54 строки · 1.3 Кб
1
#include "ICommand.h"
2
#include <Interpreters/Context.h>
3

4
namespace DB
5
{
6

7
namespace ErrorCodes
8
{
9
    extern const int BAD_ARGUMENTS;
10
}
11

12
class CommandRemove final : public ICommand
13
{
14
public:
15
    CommandRemove()
16
    {
17
        command_name = "remove";
18
        description = "Remove file or directory with all children. Throws exception if file doesn't exists.\nPath should be in format './' or './path' or 'path'";
19
        usage = "remove [OPTION]... <PATH>";
20
    }
21

22
    void processOptions(
23
        Poco::Util::LayeredConfiguration &,
24
        po::variables_map &) const override
25
    {}
26

27
    void execute(
28
        const std::vector<String> & command_arguments,
29
        std::shared_ptr<DiskSelector> & disk_selector,
30
        Poco::Util::LayeredConfiguration & config) override
31
    {
32
        if (command_arguments.size() != 1)
33
        {
34
            printHelpMessage();
35
            throw DB::Exception(DB::ErrorCodes::BAD_ARGUMENTS, "Bad Arguments");
36
        }
37

38
        String disk_name = config.getString("disk", "default");
39

40
        const String & path = command_arguments[0];
41

42
        DiskPtr disk = disk_selector->get(disk_name);
43

44
        String relative_path = validatePathAndGetAsRelative(path);
45

46
        disk->removeRecursive(relative_path);
47
    }
48
};
49
}
50

51
std::unique_ptr <DB::ICommand> makeCommandRemove()
52
{
53
    return std::make_unique<DB::CommandRemove>();
54
}
55

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

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

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

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