7#include <unordered_map>
9#include "../helpers/String.h"
20enum class ConfigValue :
char {
66 const std::string &rev);
75 return m_archs.at(arch);
79 const auto &
getConfigMap(
const std::string &arch,
const std::string &flavor)
const {
80 return m_archs.at(arch).at(flavor);
84 auto getConfig(
const std::string &arch,
const std::string &flavor,
85 const std::string &config)
const {
86 return m_archs.at(arch).at(flavor).at(config);
91 return m_archs.begin();
100 void processFlavor(
const SlGit::Repo &repo, std::string &&arch, std::string &&flavor,
102 void processConfigFile(std::string &&arch, std::string &&flavor,
103 std::string_view configFile);
104 void processConfig(
ConfigMap &map, std::string_view line);
Commit is a representation of a git commit.
Definition Commit.h:21
The most important Git class.
Definition Repo.h:45
The TreeEntry represents one git tree entry.
Definition Tree.h:107
static CollectConfigs create(const std::filesystem::path &repoPath, const std::string &rev)
Create a CollectConfigs from the repoPath and rev.
const auto & getArchMap() const
Get the arch map.
Definition CollectConfigs.h:69
auto begin() const
Get the archs iterator.
Definition CollectConfigs.h:90
const auto & getConfigMap(const std::string &arch, const std::string &flavor) const
Get the config map for a given arch, flavor.
Definition CollectConfigs.h:79
std::unordered_map< std::string, ConfigValue, SlHelpers::String::Hash, SlHelpers::String::Eq > ConfigMap
Map of config name to config value.
Definition CollectConfigs.h:35
auto getConfig(const std::string &arch, const std::string &flavor, const std::string &config) const
Get the config value for a given arch, flavor and config.
Definition CollectConfigs.h:84
CollectConfigs(const CollectConfigs &)=delete
Deleted copy constructor.
std::unordered_map< std::string, ConfigMap, SlHelpers::String::Hash, SlHelpers::String::Eq > FlavorMap
Map of flavor name to config map.
Definition CollectConfigs.h:38
const auto & getFlavorMap(const std::string &arch) const
Get the flavor map for a given arch.
Definition CollectConfigs.h:74
CollectConfigs(CollectConfigs &&)=default
Defaulted move constructor.
std::unordered_map< std::string, FlavorMap, SlHelpers::String::Hash, SlHelpers::String::Eq > ArchMap
Map of arch name to flavor map.
Definition CollectConfigs.h:41
CollectConfigs & operator=(CollectConfigs &&)=default
Defaulted move assignment operator.
CollectConfigs(const SlGit::Commit &commit)
CollectConfigs constructor.
CollectConfigs & operator=(const CollectConfigs &)=delete
Deleted copy assignment operator.
auto end() const
Get the archs end iterator.
Definition CollectConfigs.h:95
Equality test for string and string_view to be used in containers.
Definition String.h:250
Hash for string and string_view to be used in hashing containers.
Definition String.h:223