MCPcopy Create free account
hub / github.com/appdevforall/CodeOnTheGo / fs_get_cache_directory

Function fs_get_cache_directory

subprojects/llama.cpp/common/common.cpp:889–932  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

887}
888
889std::string fs_get_cache_directory() {
890 std::string cache_directory = "";
891 auto ensure_trailing_slash = [](std::string p) {
892 // Make sure to add trailing slash
893 if (p.back() != DIRECTORY_SEPARATOR) {
894 p += DIRECTORY_SEPARATOR;
895 }
896 return p;
897 };
898 if (getenv("LLAMA_CACHE")) {
899 cache_directory = std::getenv("LLAMA_CACHE");
900 } else {
901#if defined(__linux__) || defined(__FreeBSD__) || defined(_AIX) || defined(__OpenBSD__)
902 if (std::getenv("XDG_CACHE_HOME")) {
903 cache_directory = std::getenv("XDG_CACHE_HOME");
904 } else if (std::getenv("HOME")) {
905 cache_directory = std::getenv("HOME") + std::string("/.cache/");
906 } else {
907#if defined(__linux__)
908 /* no $HOME is defined, fallback to getpwuid */
909 struct passwd *pw = getpwuid(getuid());
910 if ((!pw) || (!pw->pw_dir)) {
911 throw std::runtime_error("Failed to find $HOME directory");
912 }
913
914 cache_directory = std::string(pw->pw_dir) + std::string("/.cache/");
915#else /* defined(__linux__) */
916 throw std::runtime_error("Failed to find $HOME directory");
917#endif /* defined(__linux__) */
918 }
919#elif defined(__APPLE__)
920 cache_directory = std::getenv("HOME") + std::string("/Library/Caches/");
921#elif defined(_WIN32)
922 cache_directory = std::getenv("LOCALAPPDATA");
923#elif defined(__EMSCRIPTEN__)
924 GGML_ABORT("not implemented on this platform");
925#else
926# error Unknown architecture
927#endif
928 cache_directory = ensure_trailing_slash(cache_directory);
929 cache_directory += "llama.cpp";
930 }
931 return ensure_trailing_slash(cache_directory);
932}
933
934std::string fs_get_cache_file(const std::string & filename) {
935 GGML_ASSERT(filename.find(DIRECTORY_SEPARATOR) == std::string::npos);

Callers 3

fs_get_cache_fileFunction · 0.70

Calls 1

stringClass · 0.85

Tested by

no test coverage detected