diff options
| author | Eugen Wissner <belka@caraus.de> | 2023-04-17 15:05:20 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2023-04-17 15:05:20 +0200 |
| commit | 79bdca04e2cc9e13bbfa1cac7619d5e4a56ff0bd (patch) | |
| tree | 1d267c727247c1b20dc113737ce356f3b7fa09a0 /src/command.cpp | |
| parent | 34b10f41aa285e423cccb161342b68ae7275da4b (diff) | |
| download | slackbuilder-79bdca04e2cc9e13bbfa1cac7619d5e4a56ff0bd.tar.gz | |
Remove SBo differ experiment
Diffstat (limited to 'src/command.cpp')
| -rw-r--r-- | src/command.cpp | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/src/command.cpp b/src/command.cpp deleted file mode 100644 index 9443372..0000000 --- a/src/command.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "command.h" -#include <cassert> -#include "config.h" -#include "sbo.h" -#include <ftxui/dom/elements.hpp> -#include <ftxui/component/screen_interactive.hpp> -#include "component.h" - -namespace katja -{ - void list::execute() const - { - sbo sbo_repository; - std::unordered_map<std::string, package> packages = katja::read_package_database(); - std::vector<std::vector<std::string>> table_data; - std::set<std::string> installed_packages; - std::unordered_map<std::string, package> package_database = read_package_database(); - - for (const auto& package : package_database) - { - std::string tag = package.second.tag(); - if (tag.find("_SBo") == std::string::npos) - { - continue; - } - installed_packages.insert(package.first); - } - for (const auto& package : sbo_repository.list(installed_packages)) - { - if (package_database.find(package.first)->second.version() == package.second.version()) - { - continue; - } - table_data.push_back({ - package.second.name(), - package.second.version(), - package.second.tag(), - package.second.architecture(), - "SBo" - }); - } - - auto screen = ftxui::ScreenInteractive::Fullscreen(); - PackageList list_component{ - { "Package name", "Version", "Tag", "Architecture", "Repository" }, - table_data - }; - - screen.Loop(std::make_shared<PackageList>(list_component)); - } - - void help::execute() const - { - std::cout << "Usage:\n" - "\tkatja {list|update|help} [OPTIONS]\n\n"; - } - - void update::execute() const - { - sbo().refresh(); - } - - command_exception::command_exception(const command_exception_t exception_type, - std::vector<std::string> failed_arguments) noexcept - : m_exception_type(exception_type), m_failed_arguments(failed_arguments) - { - } - - const char *command_exception::what() const noexcept - { - switch (m_exception_type) - { - case command_exception_t::no_command: - return "No command specified."; - case command_exception_t::too_many_arguments: - return "Too many arguments given."; - case command_exception_t::unknown_command: - return "Unknown command."; - } - assert(false); - } - - const std::vector<std::string>& command_exception::failed_arguments() const noexcept - { - return m_failed_arguments; - } - - std::unique_ptr<command> parse_command_line(int argc, char **argv) - { - if (argc > 2) - { - std::vector<std::string> failed_arguments; - - for (std::size_t i = 2; i < argc; ++i) - { - failed_arguments.push_back(argv[i]); - } - throw command_exception(command_exception_t::unknown_command); - } - else if (argc < 2) - { - throw command_exception(command_exception_t::no_command); - } - if (strcmp(argv[1], "list") == 0) - { - return std::make_unique<list>(); - } - else if (strcmp(argv[1], "update") == 0) - { - return std::make_unique<update>(); - } - else if (strcmp(argv[1], "help") == 0) - { - return std::make_unique<help>(); - } - throw command_exception(command_exception_t::unknown_command, { argv[1] }); - } -} |
