fixes
This commit is contained in:
parent
e37a375c18
commit
c0dba76ecd
@ -159,20 +159,20 @@ auto app_config::default_data_directory(const provider_type &prov)
|
|||||||
});
|
});
|
||||||
#else
|
#else
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
auto data_directory = utils::path::resolve(
|
auto data_directory =
|
||||||
utils::path::combine("~", {
|
utils::path::combine("~", {
|
||||||
"Library",
|
"Library",
|
||||||
"Application Support",
|
"Application Support",
|
||||||
REPERTORY_DATA_NAME,
|
REPERTORY_DATA_NAME,
|
||||||
app_config::get_provider_name(prov),
|
app_config::get_provider_name(prov),
|
||||||
}));
|
});
|
||||||
#else
|
#else
|
||||||
auto data_directory = utils::path::resolve(
|
auto data_directory =
|
||||||
utils::path::combine("~", {
|
utils::path::combine("~", {
|
||||||
".local",
|
".local",
|
||||||
REPERTORY_DATA_NAME,
|
REPERTORY_DATA_NAME,
|
||||||
app_config::get_provider_name(prov),
|
app_config::get_provider_name(prov),
|
||||||
}));
|
});
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
return data_directory;
|
return data_directory;
|
||||||
@ -327,18 +327,25 @@ auto app_config::get_max_cache_size_bytes() const -> std::uint64_t {
|
|||||||
auto app_config::get_provider_api_password(const provider_type &prov)
|
auto app_config::get_provider_api_password(const provider_type &prov)
|
||||||
-> std::string {
|
-> std::string {
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
auto api_file =
|
auto api_file = utils::path::combine(utils::get_local_app_data_directory(),
|
||||||
utils::path::combine(utils::get_local_app_data_directory(),
|
{
|
||||||
{get_provider_display_name(prov), "apipassword"});
|
get_provider_display_name(prov),
|
||||||
|
"apipassword",
|
||||||
|
});
|
||||||
#else
|
#else
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
auto api_file =
|
auto api_file = utils::path::combine("~", {
|
||||||
utils::path::combine(utils::path::resolve("~"),
|
"/",
|
||||||
{"/Library/Application Support",
|
"Library",
|
||||||
get_provider_display_name(prov), "apipassword"});
|
"Application Support",
|
||||||
|
get_provider_display_name(prov),
|
||||||
|
"apipassword",
|
||||||
|
});
|
||||||
#else
|
#else
|
||||||
auto api_file = utils::path::combine(
|
auto api_file = utils::path::combine("~/.", {
|
||||||
utils::path::resolve("~/."), {get_provider_name(prov), "apipassword"});
|
get_provider_name(prov),
|
||||||
|
"apipassword",
|
||||||
|
});
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
auto lines = utils::file::read_file_lines(api_file);
|
auto lines = utils::file::read_file_lines(api_file);
|
||||||
|
@ -93,10 +93,10 @@ auto lock_data::get_mount_state(json &mount_state) -> bool {
|
|||||||
|
|
||||||
auto lock_data::get_state_directory() -> std::string {
|
auto lock_data::get_state_directory() -> std::string {
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
return utils::path::resolve("~/Library/Application Support/" +
|
return utils::path::absolute("~/Library/Application Support/" +
|
||||||
std::string{REPERTORY_DATA_NAME} + "/state");
|
std::string{REPERTORY_DATA_NAME} + "/state");
|
||||||
#else
|
#else
|
||||||
return utils::path::resolve("~/.local/" + std::string{REPERTORY_DATA_NAME} +
|
return utils::path::absolute("~/.local/" + std::string{REPERTORY_DATA_NAME} +
|
||||||
"/state");
|
"/state");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
6
support/3rd_party/include/utils/path.hpp
vendored
6
support/3rd_party/include/utils/path.hpp
vendored
@ -212,12 +212,6 @@ get_parent_api_path(std::wstring_view path) -> std::wstring;
|
|||||||
|
|
||||||
[[nodiscard]] auto remove_file_name(std::wstring_view path) -> std::wstring;
|
[[nodiscard]] auto remove_file_name(std::wstring_view path) -> std::wstring;
|
||||||
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
[[nodiscard]] auto resolve(std::string path) -> std::string;
|
|
||||||
|
|
||||||
[[nodiscard]] auto resolve(std::wstring_view path) -> std::wstring;
|
|
||||||
#endif // !defined(_WIN32)
|
|
||||||
|
|
||||||
[[nodiscard]] auto strip_to_file_name(std::string path) -> std::string;
|
[[nodiscard]] auto strip_to_file_name(std::string path) -> std::string;
|
||||||
|
|
||||||
[[nodiscard]] auto strip_to_file_name(std::wstring path) -> std::wstring;
|
[[nodiscard]] auto strip_to_file_name(std::wstring path) -> std::wstring;
|
||||||
|
40
support/3rd_party/src/utils/path.cpp
vendored
40
support/3rd_party/src/utils/path.cpp
vendored
@ -33,6 +33,26 @@ static const std::string directory_seperator_str{
|
|||||||
static const std::wstring directory_seperator_str_w{
|
static const std::wstring directory_seperator_str_w{
|
||||||
repertory::utils::path::directory_seperator_w,
|
repertory::utils::path::directory_seperator_w,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if !defined(_WIN32)
|
||||||
|
[[nodiscard]] auto resolve(std::string path) -> std::string {
|
||||||
|
std::string home{};
|
||||||
|
repertory::utils::use_getpwuid(getuid(), [&home](struct passwd *pw) {
|
||||||
|
home = (pw->pw_dir ? pw->pw_dir : "");
|
||||||
|
if (home.empty() || ((home == "/") && (getuid() != 0))) {
|
||||||
|
home = repertory::utils::path::combine("/home", {pw->pw_name});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return repertory::utils::string::replace(path, "~", home);
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] auto resolve(std::wstring_view path) -> std::wstring {
|
||||||
|
return repertory::utils::string::from_utf8(
|
||||||
|
resolve(repertory::utils::string::to_utf8(path)));
|
||||||
|
}
|
||||||
|
#endif // !defined(_WIN32)
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace repertory::utils::path {
|
namespace repertory::utils::path {
|
||||||
@ -45,6 +65,8 @@ auto absolute(std::string_view path) -> std::string {
|
|||||||
abs_path = _fullpath(temp.c_str(), abs_path.data(), MAX_PATH);
|
abs_path = _fullpath(temp.c_str(), abs_path.data(), MAX_PATH);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
abs_path = resolve(abs_path);
|
||||||
|
|
||||||
if (not abs_path.empty() && (abs_path.at(0U) != '/')) {
|
if (not abs_path.empty() && (abs_path.at(0U) != '/')) {
|
||||||
auto found{false};
|
auto found{false};
|
||||||
std::string tmp{abs_path};
|
std::string tmp{abs_path};
|
||||||
@ -185,24 +207,6 @@ auto remove_file_name(std::string_view path) -> std::string {
|
|||||||
return abs_path;
|
return abs_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
auto resolve(std::string path) -> std::string {
|
|
||||||
std::string home{};
|
|
||||||
use_getpwuid(getuid(), [&home](struct passwd *pw) {
|
|
||||||
home = (pw->pw_dir ? pw->pw_dir : "");
|
|
||||||
if (home.empty() || ((home == "/") && (getuid() != 0))) {
|
|
||||||
home = combine("/home", {pw->pw_name});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return absolute(utils::string::replace(path, "~", home));
|
|
||||||
}
|
|
||||||
|
|
||||||
auto resolve(std::wstring_view path) -> std::wstring {
|
|
||||||
return utils::string::from_utf8(resolve(utils::string::to_utf8(path)));
|
|
||||||
}
|
|
||||||
#endif // !defined(_WIN32)
|
|
||||||
|
|
||||||
auto strip_to_file_name(std::string path) -> std::string {
|
auto strip_to_file_name(std::string path) -> std::string {
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
return ::PathFindFileName(path.c_str());
|
return ::PathFindFileName(path.c_str());
|
||||||
|
16
support/3rd_party/test/src/utils/path_test.cpp
vendored
16
support/3rd_party/test/src/utils/path_test.cpp
vendored
@ -245,20 +245,4 @@ TEST(utils_path, finalize) {
|
|||||||
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
TEST(utils_path, resolve) {
|
|
||||||
std::cout << utils::path::resolve("~") << std::endl;
|
|
||||||
std::cout << utils::path::combine("~",
|
|
||||||
{
|
|
||||||
".local",
|
|
||||||
})
|
|
||||||
<< std::endl;
|
|
||||||
std::cout << utils::path::resolve(utils::path::combine("~",
|
|
||||||
{
|
|
||||||
".local",
|
|
||||||
}))
|
|
||||||
<< std::endl;
|
|
||||||
}
|
|
||||||
#endif // !defined(_WIN32)
|
|
||||||
} // namespace repertory
|
} // namespace repertory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user