crashReporter: try $XDG_CACHE_HOME before $HOME (#1920)

This commit is contained in:
NotAShelf 2023-03-31 15:15:24 +03:00 committed by GitHub
parent 614ea53ad7
commit 3d9bf17f11
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -129,18 +129,32 @@ void CrashReporter::createAndSaveCrash(int sig) {
finalCrashReport += execAndGet(("cat \"" + Debug::logFile + "\" | tail -n 50").c_str()); finalCrashReport += execAndGet(("cat \"" + Debug::logFile + "\" | tail -n 50").c_str());
const auto HOME = getenv("HOME"); const auto HOME = getenv("HOME");
const auto CACHE_HOME = getenv("XDG_CACHE_HOME");
if (!HOME) if (!HOME)
return; return;
if (!std::filesystem::exists(std::string(HOME) + "/.hyprland")) { std::ofstream ofs;
std::filesystem::create_directory(std::string(HOME) + "/.hyprland"); if (!CACHE_HOME) {
std::filesystem::permissions(std::string(HOME) + "/.hyprland", std::filesystem::perms::all, std::filesystem::perm_options::replace); if (!std::filesystem::exists(std::string(HOME) + "/.hyprland")) {
} std::filesystem::create_directory(std::string(HOME) + "/.hyprland");
std::filesystem::permissions(std::string(HOME) + "/.hyprland", std::filesystem::perms::all, std::filesystem::perm_options::replace);
}
std::ofstream ofs(std::string(HOME) + "/.hyprland/hyprlandCrashReport" + std::to_string(PID) + ".txt", std::ios::trunc); ofs.open(std::string(HOME) + "/.hyprland/hyprlandCrashReport" + std::to_string(PID) + ".txt", std::ios::trunc);
} else if (CACHE_HOME) {
if (!std::filesystem::exists(std::string(CACHE_HOME) + "/hyprland")) {
std::filesystem::create_directory(std::string(CACHE_HOME) + "/hyprland");
std::filesystem::permissions(std::string(CACHE_HOME) + "/hyprland", std::filesystem::perms::all, std::filesystem::perm_options::replace);
}
ofs.open(std::string(CACHE_HOME) + "/hyprland/hyprlandCrashReport" + std::to_string(PID) + ".txt", std::ios::trunc);
} else {
return;
}
ofs << finalCrashReport; ofs << finalCrashReport;
ofs.close(); ofs.close();
} }