diff --git a/CHANGELOG.md b/CHANGELOG.md index 5161633a..5c5b5884 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ * Fixed intermittent client hang on remote mount server disconnect * Implemented POSIX-compliant `unlink()` with FUSE `hard_remove` * Open handles remain valid after `unlink()` +* Refactored CLI messages and error handling to use common methods ## v2.0.7-release diff --git a/repertory/librepertory/include/platform/unix_platform.hpp b/repertory/librepertory/include/platform/unix_platform.hpp index fe81efc6..988f0e4f 100644 --- a/repertory/librepertory/include/platform/unix_platform.hpp +++ b/repertory/librepertory/include/platform/unix_platform.hpp @@ -30,7 +30,8 @@ class i_provider; class lock_data final { public: - lock_data(provider_type prov, std::string_view unique_id); + lock_data(std::string data_directory, provider_type prov, + std::string_view unique_id); lock_data(const lock_data &) = delete; lock_data(lock_data &&) = delete; @@ -41,6 +42,7 @@ public: ~lock_data(); private: + std::string data_directory; std::string mutex_id_; private: @@ -48,7 +50,7 @@ private: int lock_status_{EWOULDBLOCK}; private: - [[nodiscard]] static auto get_state_directory() -> std::string; + [[nodiscard]] auto get_state_directory() -> std::string; [[nodiscard]] auto get_lock_data_file() const -> std::string; diff --git a/repertory/librepertory/include/platform/win32_platform.hpp b/repertory/librepertory/include/platform/win32_platform.hpp index 7da2c3c3..c629e0b0 100644 --- a/repertory/librepertory/include/platform/win32_platform.hpp +++ b/repertory/librepertory/include/platform/win32_platform.hpp @@ -30,7 +30,8 @@ class i_provider; class lock_data final { public: - explicit lock_data(provider_type prov, std::string unique_id); + explicit lock_data(std::string data_directory, provider_type prov, + std::string unique_id); lock_data(const lock_data &) = delete; lock_data(lock_data &&) = delete; @@ -40,6 +41,7 @@ public: auto operator=(lock_data &&) -> lock_data & = delete; private: + std::string dir_id_; std::string mutex_id_; HANDLE mutex_handle_{INVALID_HANDLE_VALUE}; DWORD mutex_state_{WAIT_FAILED}; diff --git a/repertory/librepertory/include/types/repertory.hpp b/repertory/librepertory/include/types/repertory.hpp index b9dc2a64..0b8f259e 100644 --- a/repertory/librepertory/include/types/repertory.hpp +++ b/repertory/librepertory/include/types/repertory.hpp @@ -207,7 +207,8 @@ enum class exit_code : std::int32_t { exception = -20, provider_offline = -21, ui_failed = -22, - remove_failed = -23 + remove_failed = -23, + mount_not_found = -24, }; enum http_error_codes : std::int32_t { diff --git a/repertory/librepertory/include/utils/cli_utils.hpp b/repertory/librepertory/include/utils/cli_utils.hpp index 3152e0e7..b34cb387 100644 --- a/repertory/librepertory/include/utils/cli_utils.hpp +++ b/repertory/librepertory/include/utils/cli_utils.hpp @@ -49,6 +49,7 @@ inline const option pin_file_option = {"-pf", "--pin_file"}; inline const option pinned_status_option = {"-ps", "--pinned_status"}; inline const option password_option = {"-pw", "--password"}; inline const option remote_mount_option = {"-rm", "--remote_mount"}; +inline const option remove_option = {"-rp", "--remove"}; inline const option set_option = {"-set", "--set"}; inline const option status_option = {"-status", "--status"}; inline const option test_option = {"-test", "--test"}; @@ -80,6 +81,7 @@ inline const std::vector