|
|
|
@ -202,6 +202,31 @@ namespace Jellyfin.Server
|
|
|
|
|
Directory.CreateDirectory(configDir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string cacheDir = Environment.GetEnvironmentVariable("JELLYFIN_CACHE_DIR");
|
|
|
|
|
if (string.IsNullOrEmpty(cacheDir))
|
|
|
|
|
{
|
|
|
|
|
if (options.ContainsOption("-cachedir"))
|
|
|
|
|
{
|
|
|
|
|
cacheDir = options.GetOption("-cachedir");
|
|
|
|
|
}
|
|
|
|
|
else if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
|
|
|
{
|
|
|
|
|
// $XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored.
|
|
|
|
|
cacheDir = Environment.GetEnvironmentVariable("XDG_CACHE_HOME");
|
|
|
|
|
// If $XDG_CACHE_HOME is either not set or empty, $HOME/.cache should be used.
|
|
|
|
|
if (string.IsNullOrEmpty(cacheDir))
|
|
|
|
|
{
|
|
|
|
|
cacheDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".cache");
|
|
|
|
|
}
|
|
|
|
|
cacheDir = Path.Combine(cacheDir, "jellyfin");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (cacheDir != null)
|
|
|
|
|
{
|
|
|
|
|
Directory.CreateDirectory(cacheDir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string logDir = Environment.GetEnvironmentVariable("JELLYFIN_LOG_DIR");
|
|
|
|
|
if (string.IsNullOrEmpty(logDir))
|
|
|
|
|
{
|
|
|
|
@ -223,7 +248,7 @@ namespace Jellyfin.Server
|
|
|
|
|
|
|
|
|
|
string appPath = AppContext.BaseDirectory;
|
|
|
|
|
|
|
|
|
|
return new ServerApplicationPaths(programDataPath, appPath, appPath, logDir, configDir);
|
|
|
|
|
return new ServerApplicationPaths(programDataPath, appPath, appPath, logDir, configDir, cacheDir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static async Task createLogger(IApplicationPaths appPaths)
|
|
|
|
|