From f46a16b4a0d50b6512df2b312f7f800a9a963ca2 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 1 Apr 2023 14:16:44 +0200 Subject: Add an utility to list all installed packages --- src/command.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/command.h (limited to 'src/command.h') diff --git a/src/command.h b/src/command.h new file mode 100644 index 0000000..8d0679d --- /dev/null +++ b/src/command.h @@ -0,0 +1,48 @@ +#include +#include +#include +#include +#include "package.h" + +namespace katja +{ + class command + { + public: + virtual void execute() const = 0; + }; + + class list final : public command + { + public: + void execute() const override; + }; + + class help final : public command + { + public: + void execute() const override; + }; + + enum class command_exception_t + { + no_command, + too_many_arguments, + unknown_command, + }; + + class command_exception final : public std::exception + { + command_exception_t m_exception_type; + std::vector m_failed_arguments; + + public: + explicit command_exception(const command_exception_t exception_type, + std::vector failed_arguments = {}) noexcept; + + const char *what() const noexcept override; + const std::vector& failed_arguments() const noexcept; + }; + + std::unique_ptr parse_command_line(int argc, char **argv); +} -- cgit v1.2.3