2021-07-08 05:41:34 +00:00
|
|
|
#include "config.hpp"
|
|
|
|
#include <libconfig.h++>
|
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
bool Configuration::readConfiguration(const std::string &file) {
|
|
|
|
libconfig::Config cfg;
|
|
|
|
try {
|
2021-07-27 17:13:32 +00:00
|
|
|
cfg.readFile(file.c_str());
|
2021-07-08 05:41:34 +00:00
|
|
|
} catch (const libconfig::FileIOException &fioex) {
|
|
|
|
std::cerr << "Couldn't open configuration file" << std::endl;
|
|
|
|
return false;
|
|
|
|
} catch (const libconfig::ParseException &pex) {
|
|
|
|
std::cerr << "Couldn't parse configuration file" << std::endl;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
cfg.lookupValue("source_path", source_path);
|
|
|
|
auto &targets = cfg.getRoot()["target_paths"];
|
|
|
|
for(auto &target : targets) {
|
|
|
|
target_paths.emplace_back(target["path"], target["name"]);
|
|
|
|
}
|
|
|
|
auto &cfg_libraries = cfg.getRoot()["libraries"];
|
|
|
|
for(auto &library : cfg_libraries) {
|
|
|
|
libraries.emplace_back(
|
|
|
|
library.lookup("path"),
|
|
|
|
library.lookup("config"));
|
|
|
|
}
|
|
|
|
|
|
|
|
auto &cfg_users = cfg.getRoot()["users"];
|
|
|
|
for(auto &user : cfg_users) {
|
|
|
|
users.emplace_back(
|
|
|
|
user.lookup("user"),
|
|
|
|
user.lookup("password"));
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
const std::string &Configuration::getSourcePath() {
|
|
|
|
return source_path;
|
|
|
|
}
|
2021-07-09 11:01:45 +00:00
|
|
|
const std::vector<std::pair<std::string, std::string>> &Configuration::getLibraries() {
|
2021-07-08 05:41:34 +00:00
|
|
|
return libraries;
|
|
|
|
}
|
|
|
|
const std::vector<std::pair<std::string, std::string>> &Configuration::getTargetPaths() {
|
|
|
|
return target_paths;
|
|
|
|
}
|
|
|
|
const std::vector<std::pair<std::string,std::string>> &Configuration::getUsers() {
|
|
|
|
return users;
|
|
|
|
}
|