summaryrefslogtreecommitdiff
path: root/src/utils/reload.cpp
blob: fdca9bc58284c47432682059dcb3da02e6217b21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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 (...) {
      log_warning("Re-using the previous database.");
    }
#endif
}