38using namespace svcs::core;
39using namespace svcs::services;
69 std::shared_ptr<ISubject> eventBus_;
78 std::shared_ptr<RepositoryManager> repoManager_;
93 std::shared_ptr<RepositoryManager> repoManager);
110 bool execute(
const std::vector<std::string>& args)
override;
121 [[nodiscard]] std::string
getName()
const override;
143 [[nodiscard]] std::string
getUsage()
const override;
Declaration of the ICommand interface for all executable CLI commands.
Defines the interface for the Subject (Publisher) component of the Observer pattern.
Declaration of the RepositoryManager class, managing all repository-level file operations.
Interface (abstract base class) for all commands executed via the CLI.
Definition ICommand.hxx:34
InitCommand(std::shared_ptr< ISubject > subject, std::shared_ptr< RepositoryManager > repoManager)
Constructs an InitCommand.
Definition InitCommand.cxx:20
void showHelp() const override
Displays detailed help information about the command via the event bus.
Definition InitCommand.cxx:81
std::string getDescription() const override
Returns a brief description of the command's purpose.
Definition InitCommand.cxx:73
std::string getName() const override
Returns the command name.
Definition InitCommand.cxx:69
bool execute(const std::vector< std::string > &args) override
Executes the repository initialization logic.
Definition InitCommand.cxx:25
std::string getUsage() const override
Returns the usage syntax for the command.
Definition InitCommand.cxx:77
Command-line interface components and command implementations.