diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-04-19 14:48:02 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-04-19 14:48:02 +0200 |
| commit | d10c5c980c18216db3bb9fb1137866cfd4f836ec (patch) | |
| tree | 79d029c2ccb61e3adfc1113eacb1f141499ace33 /cli/main.cpp | |
| download | katja-d10c5c980c18216db3bb9fb1137866cfd4f836ec.tar.gz | |
Initial commit
Diffstat (limited to 'cli/main.cpp')
| -rw-r--r-- | cli/main.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/cli/main.cpp b/cli/main.cpp new file mode 100644 index 0000000..a204d2f --- /dev/null +++ b/cli/main.cpp @@ -0,0 +1,32 @@ +#include <filesystem> + +#include <ftxui/component/screen_interactive.hpp> +#include <ftxui/dom/elements.hpp> +#include <toml.hpp> + +#include "katja/sbo.hpp" +#include "katja/database.hpp" +#include "component.hpp" + +int main(int argc, const char **argv) +{ + auto configuration = toml::parse("katja.toml"); + katja::package_database installed_database = katja::read_installed_database(); + + for (const auto& [repository_name, repository_value] : configuration.as_table()) + { + std::filesystem::path slackbuild_repository{ repository_value.at("path").as_string() }; + auto repository = std::make_shared<katja::sbo_repository>(slackbuild_repository); + + auto screen = ftxui::ScreenInteractive::Fullscreen(); + + auto container = Screen(std::vector<std::pair<std::string, katja::Page>>{ + { "Home", ftxui::Make<katja::WelcomePage>() }, + { "Updates", ftxui::Make<katja::UpdatesPage>(repository, std::move(installed_database)) }, + { "Search", ftxui::Make<katja::SearchPage>(repository, "x86-64") } + }, screen.ExitLoopClosure()); + + screen.Loop(container); + } + return EXIT_SUCCESS; +} |
