aboutsummaryrefslogtreecommitdiff
path: root/katja/database.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'katja/database.cpp')
-rw-r--r--katja/database.cpp96
1 files changed, 0 insertions, 96 deletions
diff --git a/katja/database.cpp b/katja/database.cpp
deleted file mode 100644
index 4f4b5b8..0000000
--- a/katja/database.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at https://mozilla.org/MPL/2.0/.
- */
-#include "katja/database.hpp"
-
-#include <filesystem>
-
-namespace katja
-{
- database_package database_package::create_database_package(const std::string& fullname)
- {
- std::string::const_reverse_iterator begin_iterator = std::crbegin(fullname);
- std::string::const_reverse_iterator end_iterator = begin_iterator;
- int minus_counter = 0;
-
- std::string build_tag;
- std::string architecture;
- std::string version;
-
- for (; begin_iterator != std::crend(fullname) && minus_counter < 3; ++begin_iterator)
- {
- if (*begin_iterator == '-')
- {
- if (minus_counter == 0)
- {
- build_tag = std::string(begin_iterator.base(), end_iterator.base());
- }
- else if (minus_counter == 1)
- {
- architecture = std::string(begin_iterator.base(), end_iterator.base());
- }
- else if (minus_counter == 2)
- {
- version = std::string(begin_iterator.base(), end_iterator.base());
- }
- end_iterator = begin_iterator + 1;
- ++minus_counter;
- }
- }
- return database_package(std::string(fullname.cbegin(), end_iterator.base()),
- std::move(version), std::move(architecture), std::move(build_tag));
- }
-
- database_package::database_package(std::string&& name, std::string&& version,
- std::string&& architecture, std::string&& build_tag)
- : name(name), version(version), architecture(architecture), build_tag(build_tag)
- {
- }
-
- database_package::database_package(const std::string& fullname)
- : database_package(create_database_package(fullname))
- {
- }
-
- bool database_package::operator<(const database_package& that) const
- {
- return this->name < that.name;
- }
-
- bool database_package::operator>(const database_package& that) const
- {
- return this->name > that.name;
- }
-
- std::string database_package::to_string() const
- {
- std::string package_string;
- const std::size_t total_size = this->name.size() + this->version.size()
- + this->architecture.size() + this->build_tag.size() + 3;
-
- package_string.reserve(total_size);
- package_string.append(this->name);
- package_string.push_back('-');
- package_string.append(this->version);
- package_string.push_back('-');
- package_string.append(this->architecture);
- package_string.push_back('-');
- package_string.append(this->build_tag);
-
- return package_string;
- }
-
- package_database read_installed_database()
- {
- package_database result;
-
- for (const auto& entry : std::filesystem::directory_iterator(katja::database))
- {
- database_package database_entry{ entry.path().filename() };
- result.emplace(database_entry.name, database_entry);
- }
- return result;
- }
-}