Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
aktualizr_info_config.h
1 #ifndef AKTUALIZR_INFO_CONFIG_H_
2 #define AKTUALIZR_INFO_CONFIG_H_
3 
4 #include <boost/filesystem.hpp>
5 #include <boost/program_options.hpp>
6 #include <boost/property_tree/ini_parser.hpp>
7 
8 #include "bootloader/bootloader_config.h"
9 #include "logging/logging_config.h"
10 #include "package_manager/packagemanagerconfig.h"
11 #include "storage/storage_config.h"
12 #include "utilities/config_utils.h"
13 
14 // Try to keep the order of config options the same as in
15 // AktualizrInfoConfig::writeToStream() and
16 // AktualizrInfoConfig::updateFromPropertyTree().
17 
19  public:
20  AktualizrInfoConfig() = default;
21  AktualizrInfoConfig(const boost::program_options::variables_map& cmd);
22  explicit AktualizrInfoConfig(const boost::filesystem::path& filename);
23 
24  void postUpdateValues();
25  void writeToStream(std::ostream& sink) const;
26 
27  // from primary config
28  BootloaderConfig bootloader;
29  LoggerConfig logger;
30  PackageConfig pacman;
31  StorageConfig storage;
32 
33  private:
34  void updateFromCommandLine(const boost::program_options::variables_map& cmd);
35  void updateFromPropertyTree(const boost::property_tree::ptree& pt) override;
36 
37  bool loglevel_from_cmdline{false};
38 };
39 std::ostream& operator<<(std::ostream& os, const AktualizrInfoConfig& cfg);
40 
41 #endif // AKTUALIZR_INFO_CONFIG_H_
BaseConfig
Definition: config_utils.h:125
StorageConfig
Definition: storage_config.h:15
AktualizrInfoConfig
Definition: aktualizr_info_config.h:18
LoggerConfig
Definition: logging_config.h:7
PackageConfig
Definition: packagemanagerconfig.h:24
BootloaderConfig
Definition: bootloader_config.h:11