fs/StandardDirectory: add GetAppRuntimeDir()

This commit is contained in:
Max Kellermann 2021-10-26 09:15:25 +02:00
parent 1e6f5f012c
commit b9f7127691
3 changed files with 23 additions and 5 deletions

View File

@ -86,13 +86,10 @@ ListenXdgRuntimeDir(ClientListener &listener) noexcept
use $XDG_RUNTIME_DIR */ use $XDG_RUNTIME_DIR */
return false; return false;
const auto xdg_runtime_dir = GetUserRuntimeDir(); const auto mpd_runtime_dir = GetAppRuntimeDir();
if (xdg_runtime_dir.IsNull()) if (mpd_runtime_dir.IsNull())
return false; return false;
const auto mpd_runtime_dir = xdg_runtime_dir / Path::FromFS("mpd");
mkdir(mpd_runtime_dir.c_str(), 0700);
const auto socket_path = mpd_runtime_dir / Path::FromFS("socket"); const auto socket_path = mpd_runtime_dir / Path::FromFS("socket");
unlink(socket_path.c_str()); unlink(socket_path.c_str());

View File

@ -292,6 +292,20 @@ GetUserRuntimeDir() noexcept
#endif #endif
} }
AllocatedPath
GetAppRuntimeDir() noexcept
{
#ifdef USE_XDG
if (const auto user_dir = GetUserRuntimeDir(); !user_dir.IsNull()) {
auto dir = user_dir / Path::FromFS("mpd");
mkdir(dir.c_str(), 0700);
return dir;
}
#endif
return nullptr;
}
#ifdef _WIN32 #ifdef _WIN32
AllocatedPath AllocatedPath

View File

@ -50,6 +50,13 @@ GetUserCacheDir() noexcept;
AllocatedPath AllocatedPath
GetUserRuntimeDir() noexcept; GetUserRuntimeDir() noexcept;
/**
* Obtains the runtime directory for this application.
*/
[[gnu::const]]
AllocatedPath
GetAppRuntimeDir() noexcept;
#ifdef _WIN32 #ifdef _WIN32
/** /**