ClickHouse/programs/disks/CommandChangeDirectory.cpp

36 lines
1.1 KiB
C++
Raw Normal View History

2024-05-27 11:44:45 +00:00
#include <Interpreters/Context.h>
#include <Common/TerminalSize.h>
#include "DisksApp.h"
#include "DisksClient.h"
#include "ICommand.h"
namespace DB
{
class CommandChangeDirectory final : public ICommand
{
public:
explicit CommandChangeDirectory() : ICommand()
{
command_name = "cd";
2024-07-04 14:09:43 +00:00
description = "Change directory (makes sense only in interactive mode)";
options_description.add_options()("path", po::value<String>(), "the path to which we want to change (mandatory, positional)")(
2024-06-13 19:14:16 +00:00
"disk", po::value<String>(), "A disk where the path is changed (without disk switching)");
2024-05-27 11:44:45 +00:00
positional_options_description.add("path", 1);
}
void executeImpl(const CommandLineOptions & options, DisksClient & client) override
{
DiskWithPath & disk = getDiskWithPath(client, options, "disk");
String path = getValueFromCommandLineOptionsThrow<String>(options, "path");
disk.setPath(path);
}
};
CommandPtr makeCommandChangeDirectory()
{
return std::make_shared<DB::CommandChangeDirectory>();
2024-05-27 11:44:45 +00:00
}
}