Mercurial > minori
comparison src/core/filesystem.cpp @ 45:4b05bc7668eb
filesystem: split config path into dotpath and config, add anime db path
EVENTUALLY I'll get around to saving the anime db and list...
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Fri, 22 Sep 2023 15:21:55 -0400 |
| parents | 619cbd6e69f9 |
| children | 327e9a5c72f1 |
comparison
equal
deleted
inserted
replaced
| 44:619cbd6e69f9 | 45:4b05bc7668eb |
|---|---|
| 58 size_t pos = 0; | 58 size_t pos = 0; |
| 59 pos = path.find_last_of(DELIM); | 59 pos = path.find_last_of(DELIM); |
| 60 return path.substr(0, pos); | 60 return path.substr(0, pos); |
| 61 } | 61 } |
| 62 | 62 |
| 63 std::string GetConfigPath(void) { | 63 std::string GetDotPath(void) { |
| 64 std::string ret = ""; | 64 std::string ret = ""; |
| 65 #ifdef WIN32 | 65 #ifdef WIN32 |
| 66 char buf[PATH_MAX + 1]; | 66 char buf[PATH_MAX + 1]; |
| 67 if (SHGetFolderPathAndSubDir(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, CONFIG_DIR, buf) == S_OK) { | 67 if (SHGetFolderPathAndSubDir(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, CONFIG_DIR, buf) == S_OK) { |
| 68 ret += buf; | 68 ret += buf; |
| 69 ret += DELIM CONFIG_NAME; | |
| 70 } | 69 } |
| 71 #elif defined(MACOSX) | 70 #elif defined(MACOSX) |
| 72 /* pass all of our problems to objc++ code */ | |
| 73 ret += osx::GetApplicationSupportDirectory(); | 71 ret += osx::GetApplicationSupportDirectory(); |
| 74 ret += DELIM CONFIG_DIR DELIM CONFIG_NAME; | 72 ret += DELIM CONFIG_DIR; |
| 75 #else // just assume POSIX | 73 #else // just assume POSIX |
| 76 if (getenv("HOME") != NULL) | 74 if (getenv("HOME") != NULL) |
| 77 ret += getenv("HOME"); | 75 ret += getenv("HOME"); |
| 78 # ifdef __linux__ | 76 # ifdef __linux__ |
| 79 else | 77 else |
| 80 ret += getpwuid(getuid())->pw_dir; | 78 ret += getpwuid(getuid())->pw_dir; |
| 81 # endif // __linux__ | 79 # endif // __linux__ |
| 82 if (!ret.empty()) | 80 if (!ret.empty()) |
| 83 ret += DELIM ".config" DELIM CONFIG_DIR DELIM CONFIG_NAME; | 81 ret += DELIM ".config" DELIM CONFIG_DIR; |
| 84 #endif // !WIN32 && !MACOSX | 82 #endif // !WIN32 && !MACOSX |
| 85 return ret; | 83 return ret; |
| 86 } | 84 } |
| 87 | 85 |
| 86 std::string GetConfigPath(void) { | |
| 87 std::string ret = ""; | |
| 88 ret += GetDotPath(); | |
| 89 if (!ret.empty()) | |
| 90 ret += DELIM CONFIG_NAME; | |
| 91 return ret; | |
| 92 } | |
| 93 | |
| 94 std::string GetAnimeDBPath(void) { | |
| 95 std::string ret = ""; | |
| 96 ret += GetDotPath(); | |
| 97 if (!ret.empty()) | |
| 98 ret += DELIM "anime" DELIM "db.json"; | |
| 99 return ret; | |
| 100 } | |
| 101 | |
| 88 } // namespace Filesystem | 102 } // namespace Filesystem |
