SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
HubCommand.hxx
См. документацию.
1
23#pragma once
24
25#include "ServerBaseCommand.hxx"
26#include <filesystem>
27
37 * @russian
38 * @namespace svcs::server::cli
39 * @brief Компоненты командной строки для администрирования сервера.
40 * @details Содержит CLI команды, специально предназначенные для администрирования и управления сервером,
41 * включая создание репозиториев-хабов, управление пользователями и конфигурацию сервера.
42 * Эти команды используются администраторами для настройки и обслуживания экземпляров сервера SVCS.
43 * Это пространство имен связывает серверную функциональность с интерфейсом командной строки.
44 */
45namespace svcs::server::cli {
46
64class HubCommand : public ServerBaseCommand {
65public:
77 HubCommand(std::shared_ptr<ISubject> event_bus,
78 std::shared_ptr<RepositoryManager> repository_manager);
79
87 ~HubCommand() override = default;
88
98 [[nodiscard]] std::string getName() const override;
99
109 [[nodiscard]] std::string getDescription() const override;
110
120 [[nodiscard]] std::string getUsage() const override;
121
137 bool execute(const std::vector<std::string>& args) override;
138
150 void showHelp() const override;
151
152private:
168 bool initializeHubRepository(const std::filesystem::path& repo_path) const;
169
183 bool createHubDirectoryStructure(const std::filesystem::path& svcs_path) const;
184
200 bool createHubConfigFile(const std::filesystem::path& svcs_path) const;
201
215 bool createHubHEADFile(const std::filesystem::path& svcs_path) const;
216
230 [[nodiscard]] bool isValidHubPath(const std::filesystem::path& path) const;
231
245 [[nodiscard]] bool isPathAvailable(const std::filesystem::path& path) const;
246};
247
248}
Базовый класс для команд администрирования сервера с использованием интерфейса ICommand.
std::string getName() const override
Получает имя команды.
Определения HubCommand.cxx:37
bool execute(const std::vector< std::string > &args) override
Выполняет команду hub с предоставленными аргументами.
Определения HubCommand.cxx:49
void showHelp() const override
Отображает справочную информацию для команды hub.
Определения HubCommand.cxx:117
std::string getUsage() const override
Получает синтаксис использования для команды.
Определения HubCommand.cxx:45
std::string getDescription() const override
Получает краткое описание назначения команды.
Определения HubCommand.cxx:41
~HubCommand() override=default
Деструктор по умолчанию.
HubCommand(std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repository_manager)
Конструирует HubCommand с необходимыми зависимостями.
Определения HubCommand.cxx:31
ServerBaseCommand(std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repo_manager)
Конструирует ServerBaseCommand с необходимыми зависимостями.
Определения ServerBaseCommand.cxx:16
Компоненты командной строки для администрирования сервера.