1 #include "aktualizr_info_config.h"
3 #include "utilities/config_utils.h"
5 AktualizrInfoConfig::AktualizrInfoConfig(
const boost::program_options::variables_map& cmd) {
8 if (cmd.count(
"loglevel") != 0) {
9 logger.loglevel = cmd[
"loglevel"].as<
int>();
10 logger_set_threshold(logger);
11 loglevel_from_cmdline =
true;
14 if (cmd.count(
"config") > 0) {
15 const auto configs = cmd[
"config"].as<std::vector<boost::filesystem::path>>();
17 updateFromDirs(configs);
19 updateFromDirs(config_dirs_);
21 updateFromCommandLine(cmd);
25 AktualizrInfoConfig::AktualizrInfoConfig(
const boost::filesystem::path& filename) {
26 updateFromToml(filename);
30 void AktualizrInfoConfig::postUpdateValues() {
31 logger_set_threshold(logger);
32 LOG_TRACE <<
"Final configuration that will be used: \n" << (*this);
35 void AktualizrInfoConfig::updateFromCommandLine(
const boost::program_options::variables_map& cmd) {
36 if (cmd.count(
"loglevel") != 0) {
37 logger.loglevel = cmd[
"loglevel"].as<
int>();
41 void AktualizrInfoConfig::updateFromPropertyTree(
const boost::property_tree::ptree& pt) {
46 if (!loglevel_from_cmdline) {
47 CopySubtreeFromConfig(logger,
"logger", pt);
50 logger_set_threshold(logger);
54 CopySubtreeFromConfig(pacman,
"pacman", pt);
55 CopySubtreeFromConfig(storage,
"storage", pt);
58 void AktualizrInfoConfig::writeToStream(std::ostream& sink)
const {
61 WriteSectionToStream(logger,
"logger", sink);
62 WriteSectionToStream(pacman,
"pacman", sink);
63 WriteSectionToStream(storage,
"storage", sink);
67 cfg.writeToStream(os);