diff --git a/monitarr/libmonitarr/include/data_db.hpp b/monitarr/libmonitarr/include/data_db.hpp index a076273..5355ddf 100644 --- a/monitarr/libmonitarr/include/data_db.hpp +++ b/monitarr/libmonitarr/include/data_db.hpp @@ -61,7 +61,7 @@ public: [[nodiscard]] auto get(std::string_view download_id) const -> std::optional; - void open(std::string_view data_dir); + void open(std::string_view data_dir, std::string_view log_dir); void remove(std::string_view download_id); diff --git a/monitarr/libmonitarr/src/data_db.cpp b/monitarr/libmonitarr/src/data_db.cpp index 796132b..408b1ca 100644 --- a/monitarr/libmonitarr/src/data_db.cpp +++ b/monitarr/libmonitarr/src/data_db.cpp @@ -57,7 +57,7 @@ auto data_db::get(std::string_view download_id) const return ret; } -void data_db::open(std::string_view data_dir) { +void data_db::open(std::string_view data_dir, std::string_view log_dir) { MONITARR_USES_FUNCTION_NAME(); auto db_path = utils::path::combine(data_dir, {"state_db"}); @@ -67,7 +67,7 @@ void data_db::open(std::string_view data_dir) { rocksdb::Options options{}; options.create_if_missing = true; options.create_missing_column_families = true; - options.db_log_dir = data_dir; + options.db_log_dir = utils::path::combine(log_dir, {"state_db"}); options.keep_log_file_num = 10; rocksdb::TransactionDB *ptr{}; diff --git a/monitarr/monitarr/include/run_cmd.hpp b/monitarr/monitarr/include/run_cmd.hpp index c160cd7..0985a88 100644 --- a/monitarr/monitarr/include/run_cmd.hpp +++ b/monitarr/monitarr/include/run_cmd.hpp @@ -27,7 +27,8 @@ namespace monitarr { struct app_config; -[[nodiscard]] auto run_cmd(const app_config &cfg) -> int; +[[nodiscard]] auto run_cmd(const app_config &cfg, std::string_view log_dir) + -> int; } // namespace monitarr #endif // LIBMONITARR_INCLUDE_RUN_CMD_HPP_ diff --git a/monitarr/monitarr/main.cpp b/monitarr/monitarr/main.cpp index 430fbbb..b80639f 100644 --- a/monitarr/monitarr/main.cpp +++ b/monitarr/monitarr/main.cpp @@ -98,7 +98,7 @@ auto main(int argc, char **argv) -> int { spdlog::create_async( "file", utils::path::combine(log_dir, {"monitarr.log"}), MAX_LOG_FILE_SIZE, MAX_LOG_FILES); - ret = run_cmd(cfg); + ret = run_cmd(cfg, log_dir); } else if (has_arg("-s", argc, argv)) { ret = show_cmd(argc, argv, cfg); } else { diff --git a/monitarr/monitarr/src/run_cmd.cpp b/monitarr/monitarr/src/run_cmd.cpp index f2be6c3..7ab3930 100644 --- a/monitarr/monitarr/src/run_cmd.cpp +++ b/monitarr/monitarr/src/run_cmd.cpp @@ -129,7 +129,7 @@ static void check_server(const server_cfg &server, data_db &state_db) { } } -[[nodiscard]] static auto load_db() -> data_db { +[[nodiscard]] static auto load_db(std::string_view log_dir) -> data_db { MONITARR_USES_FUNCTION_NAME(); auto data_dir = utils::get_environment_variable("MONITARR_DATA_DIR"); @@ -147,11 +147,11 @@ static void check_server(const server_cfg &server, data_db &state_db) { } data_db state_db{}; - state_db.open(data_dir); + state_db.open(data_dir, log_dir); return state_db; } -auto run_cmd(const app_config &cfg) -> int { +auto run_cmd(const app_config &cfg, std::string_view log_dir) -> int { MONITARR_USES_FUNCTION_NAME(); auto ret{0}; @@ -167,7 +167,7 @@ auto run_cmd(const app_config &cfg) -> int { "no servers have been configured"); ret = 3; } else { - auto state_db{load_db()}; + auto state_db{load_db(log_dir)}; while (not stop_requested) { std::for_each(std::execution::par, cfg.server_list.begin(),