SlHelpers
Toggle main menu visibility
Loading...
Searching...
No Matches
CollectConfigs.h
1
// SPDX-License-Identifier: GPL-2.0-only
2
3
#pragma once
4
5
#include <functional>
6
#include <string>
7
8
namespace
SlGit {
9
class
Commit
;
10
class
Repo
;
11
class
TreeEntry
;
12
}
13
14
namespace
SlKernCVS {
15
20
class
CollectConfigs
{
21
public
:
23
enum
ConfigValue
:
char
{
24
Disabled =
'n'
,
25
BuiltIn =
'y'
,
26
Module =
'm'
,
27
WithValue =
'v'
,
28
};
29
31
using
InsertArchFlavor
= std::function<bool (
const
std::string &,
const
std::string &)>;
33
using
InsertConfig
= std::function<bool (
const
std::string &,
const
std::string &,
34
const
std::string &,
const
ConfigValue
&)>;
35
42
CollectConfigs
(
const
SlGit::Repo
&repo,
InsertArchFlavor
insertArchFlavor,
43
InsertConfig
insertConfig) : repo(repo),
44
insertArchFlavor(std::move(insertArchFlavor)),
45
insertConfig(std::move(insertConfig)) {}
46
52
bool
collectConfigs
(
const
SlGit::Commit
&commit)
noexcept
;
53
54
private
:
55
bool
processFlavor(
const
std::string &arch,
const
std::string &flavor,
56
const
SlGit::TreeEntry
&treeEntry)
noexcept
;
57
bool
processConfigFile(
const
std::string &arch,
const
std::string &flavor,
58
std::string_view configFile)
noexcept
;
59
bool
processConfig(
const
std::string &arch,
const
std::string &flavor,
60
std::string_view line)
noexcept
;
61
const
SlGit::Repo
&repo;
62
const
InsertArchFlavor
insertArchFlavor;
63
const
InsertConfig
insertConfig;
64
};
65
66
}
SlGit::Commit
Commit is a representation of a git commit.
Definition
Commit.h:21
SlGit::Repo
The most important Git class.
Definition
Repo.h:45
SlGit::TreeEntry
The TreeEntry represents one git tree entry.
Definition
Tree.h:107
SlKernCVS::CollectConfigs::ConfigValue
ConfigValue
Value for a config.
Definition
CollectConfigs.h:23
SlKernCVS::CollectConfigs::InsertArchFlavor
std::function< bool(const std::string &, const std::string &)> InsertArchFlavor
A callback invoked for arch and flavor.
Definition
CollectConfigs.h:31
SlKernCVS::CollectConfigs::collectConfigs
bool collectConfigs(const SlGit::Commit &commit) noexcept
The real work function of this class.
SlKernCVS::CollectConfigs::CollectConfigs
CollectConfigs(const SlGit::Repo &repo, InsertArchFlavor insertArchFlavor, InsertConfig insertConfig)
CollectConfigs constructor.
Definition
CollectConfigs.h:42
SlKernCVS::CollectConfigs::InsertConfig
std::function< bool(const std::string &, const std::string &, const std::string &, const ConfigValue &)> InsertConfig
A callback invoked for arch, flavor, config, and its value.
Definition
CollectConfigs.h:33
include
kerncvs
CollectConfigs.h
Generated by
1.17.0