From 53a911f207c6d66cade03cebe65a6b2f8118a15d Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Tue, 7 Oct 2025 12:25:41 -0500 Subject: [PATCH] Add remove mount capabilities to CLI and UI #62 --- repertory/librepertory/include/platform/unix_platform.hpp | 2 +- repertory/librepertory/src/platform/unix_platform.cpp | 6 +++--- repertory/repertory/include/cli/remove.hpp | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/repertory/librepertory/include/platform/unix_platform.hpp b/repertory/librepertory/include/platform/unix_platform.hpp index 7e6ec5f6..418b132f 100644 --- a/repertory/librepertory/include/platform/unix_platform.hpp +++ b/repertory/librepertory/include/platform/unix_platform.hpp @@ -52,7 +52,7 @@ private: private: [[nodiscard]] auto get_lock_data_file() const -> std::string; - [[nodiscard]] auto get_lock_file() const -> std::string; + [[nodiscard]] auto get_lock_file(bool create_parent = true) const -> std::string; [[nodiscard]] auto get_state_directory() const -> std::string; diff --git a/repertory/librepertory/src/platform/unix_platform.cpp b/repertory/librepertory/src/platform/unix_platform.cpp index 7bef28a5..ae566156 100644 --- a/repertory/librepertory/src/platform/unix_platform.cpp +++ b/repertory/librepertory/src/platform/unix_platform.cpp @@ -60,9 +60,9 @@ auto lock_data::get_lock_data_file() const -> std::string { }); } -auto lock_data::get_lock_file() const -> std::string { +auto lock_data::get_lock_file(bool create_parent) const -> std::string { auto dir = get_state_directory(); - if (not utils::file::directory(dir).create_directory()) { + if (create_parent && not utils::file::directory(dir).create_directory()) { throw startup_exception("failed to create directory|sp|" + dir + "|err|" + std::to_string(utils::get_last_error_code())); } @@ -128,7 +128,7 @@ void lock_data::release() { } if (lock_status_ == 0) { - [[maybe_unused]] auto success{utils::file::file{get_lock_file()}.remove()}; + [[maybe_unused]] auto success{utils::file::file{get_lock_file(false)}.remove()}; flock(handle_, LOCK_UN); } diff --git a/repertory/repertory/include/cli/remove.hpp b/repertory/repertory/include/cli/remove.hpp index 7e2f75e5..cd393418 100644 --- a/repertory/repertory/include/cli/remove.hpp +++ b/repertory/repertory/include/cli/remove.hpp @@ -53,6 +53,7 @@ namespace repertory::cli::actions { utils::collection::to_hex_string( utils::generate_secure_random(4U))), }); + if (utils::file::directory{data_directory}.move_to(trash_path)) { return cli::handle_error( exit_code::success,