diff options
Diffstat (limited to 'src/utils/reload.cpp')
-rw-r--r-- | src/utils/reload.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/utils/reload.cpp b/src/utils/reload.cpp new file mode 100644 index 0000000..348c5b5 --- /dev/null +++ b/src/utils/reload.cpp @@ -0,0 +1,34 @@ +#include <utils/reload.hpp> +#include <database/database.hpp> +#include <config/config.hpp> +#include <utils/xdg.hpp> +#include <logger/logger.hpp> + +#include "biboumi.h" + +void open_database() +{ +#ifdef USE_DATABASE + const auto db_filename = Config::get("db_name", xdg_data_path("biboumi.sqlite")); + log_info("Opening database: ", db_filename); + Database::open(db_filename); + log_info("database successfully opened."); +#endif +} + +void reload_process() +{ + Config::read_conf(); + // Destroy the logger instance, to be recreated the next time a log + // line needs to be written + Logger::instance().reset(); + log_info("Configuration and logger reloaded."); +#ifdef USE_DATABASE + try { + open_database(); + } catch (const litesql::DatabaseError&) { + log_warning("Re-using the previous database."); + } +#endif +} + |