diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-03-12 13:04:58 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-03-12 13:04:58 +0100 |
| commit | 67d798dcb056b815b5439b05bd823a4a46843899 (patch) | |
| tree | 582fea4b04a2bba623c95264daf009d4e7148aca /include | |
| parent | dfa5a732bab2bf4c50c6b193cb49cd3a67aef720 (diff) | |
| download | kazbek-67d798dcb056b815b5439b05bd823a4a46843899.tar.gz | |
katja: Show only updates
Diffstat (limited to 'include')
| -rw-r--r-- | include/katja/database.hpp | 10 | ||||
| -rw-r--r-- | include/katja/repository.hpp | 20 | ||||
| -rw-r--r-- | include/katja/sbo.hpp | 14 |
3 files changed, 40 insertions, 4 deletions
diff --git a/include/katja/database.hpp b/include/katja/database.hpp index ee4816e..ca85ab1 100644 --- a/include/katja/database.hpp +++ b/include/katja/database.hpp @@ -20,10 +20,10 @@ namespace katja static database_package create_database_package(const std::string& fullname); public: - const std::string build_tag; - const std::string architecture; - const std::string version; const std::string name; + const std::string version; + const std::string architecture; + const std::string build_tag; database_package(const std::string& fullname); @@ -33,5 +33,7 @@ namespace katja std::string to_string() const; }; - std::multimap<std::string, database_package> read_installed_database(); + using package_database = std::multimap<std::string, database_package>; + + package_database read_installed_database(); } diff --git a/include/katja/repository.hpp b/include/katja/repository.hpp index ca20277..0a799bd 100644 --- a/include/katja/repository.hpp +++ b/include/katja/repository.hpp @@ -5,6 +5,26 @@ */ #pragma once +#include <string> +#include <vector> + +#include "katja/database.hpp" + namespace katja { + struct package_identifier + { + const std::string name; + const std::string version; + const std::string architecture; + const std::string data; + + std::string to_string() const; + }; + + class repository + { + public: + virtual std::vector<package_identifier> get_updates(const package_database& database) = 0; + }; } diff --git a/include/katja/sbo.hpp b/include/katja/sbo.hpp index ff16dd7..3c7a5d9 100644 --- a/include/katja/sbo.hpp +++ b/include/katja/sbo.hpp @@ -10,6 +10,8 @@ #include <filesystem> #include <optional> +#include "katja/repository.hpp" + namespace katja { struct info_file @@ -24,6 +26,18 @@ namespace katja const std::string homepage, const std::string& email, const std::string& maintainer); }; + class sbo_repository final : public repository + { + std::map<std::string, std::filesystem::path> info_paths; + + public: + sbo_repository(const std::filesystem::path& repository_path); + + std::vector<package_identifier> get_updates(const package_database& database) override; + }; + std::optional<info_file> read_slackbuild_info(const std::filesystem::path& info_filepath); void search_for_slackbuilds(std::vector<info_file>& info_files, const std::filesystem::path& directory); + void search_for_slackbuilds(std::map<std::string, std::filesystem::path>& info_files, + const std::filesystem::path& directory); } |
