/* Copyright 2020, Michele Santullo * This file is part of orotool. * * Orotool is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Orotool is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Orotool. If not, see . */ #include "app_config.hpp" #include "orotool_config.hpp" #include #include namespace duck { namespace { std::string whole_ini() { std::ifstream input(g_config_file_path); input >> std::noskipws; return { std::istream_iterator(input), std::istream_iterator() }; } } //unnamed namespace AppConfig::AppConfig() : m_ini(whole_ini()) { } AppConfig::~AppConfig() noexcept = default; std::string_view AppConfig::db_path() const { const auto& map = m_ini.parsed(); auto it_section = map.find("main"); if (map.end() == it_section) return ""; auto it_setting = it_section->second.find("db_path"); if (it_section->second.end() == it_setting) return ""; return it_setting->second; } } //namespace duck