Mercurial > minori
comparison src/core/filesystem.cc @ 176:121c2d5b321f
anime/db: finalize anime db cache
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Fri, 01 Dec 2023 13:12:26 -0500 |
| parents | 80d6b28eb29f |
| children | 8548dc425697 |
comparison
equal
deleted
inserted
replaced
| 175:9b10175be389 | 176:121c2d5b321f |
|---|---|
| 37 | 37 |
| 38 std::filesystem::path GetDotPath() { | 38 std::filesystem::path GetDotPath() { |
| 39 #ifdef WIN32 | 39 #ifdef WIN32 |
| 40 std::filesystem::path path; | 40 std::filesystem::path path; |
| 41 wchar_t* buf; | 41 wchar_t* buf; |
| 42 | |
| 42 if (SHGetKnownFolderPath(FOLDERID_RoamingAppData, KF_FLAG_CREATE, NULL, &buf) == S_OK) | 43 if (SHGetKnownFolderPath(FOLDERID_RoamingAppData, KF_FLAG_CREATE, NULL, &buf) == S_OK) |
| 43 path = buf; | 44 path = buf; |
| 44 else | 45 else |
| 45 return std::filesystem::path(); | 46 return std::filesystem::path(); |
| 47 | |
| 46 CoTaskMemFree(buf); | 48 CoTaskMemFree(buf); |
| 49 | |
| 47 return path / CONFIG_DIR; | 50 return path / CONFIG_DIR; |
| 48 #elif defined(MACOSX) | 51 #elif defined(MACOSX) |
| 49 return std::filesystem::path(osx::GetApplicationSupportDirectory()) / CONFIG_DIR; | 52 return std::filesystem::path(osx::GetApplicationSupportDirectory()) / CONFIG_DIR; |
| 50 #else // just assume POSIX | 53 #else // just assume POSIX |
| 51 std::filesystem::path path; | 54 std::filesystem::path path; |
| 52 const char* home = getenv("HOME"); | 55 const char* home = getenv("HOME"); |
| 56 | |
| 53 # ifdef __linux__ | 57 # ifdef __linux__ |
| 54 if (!home) | 58 if (!home) |
| 55 home = getpwuid(getuid())->pw_dir; | 59 home = getpwuid(getuid())->pw_dir; |
| 56 # endif // __linux__ | 60 # endif // __linux__ |
| 61 | |
| 62 /* only do this if the home directory was really found */ | |
| 57 if (home) | 63 if (home) |
| 58 return std::filesystem::path(home) / ".config" / CONFIG_DIR; | 64 return std::filesystem::path(home) / ".config" / CONFIG_DIR; |
| 59 else | 65 else |
| 60 return std::filesystem::path(); | 66 return std::filesystem::path(); |
| 61 #endif // !WIN32 && !MACOSX | 67 #endif // !WIN32 && !MACOSX |
