From 0f5c0cca3768efd106192add90090c893b2ea60c Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Wed, 12 Dec 2018 18:55:14 +0100 Subject: Move default folder for *nix platforms to $HOME/.jellyfin Remove dependency on System.Configuration.ConfigurationManager --- MediaBrowser.Server.Mono/Program.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Server.Mono/Program.cs') diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs index 3bcfff983..8d0c9ee0e 100644 --- a/MediaBrowser.Server.Mono/Program.cs +++ b/MediaBrowser.Server.Mono/Program.cs @@ -24,6 +24,7 @@ using Mono.Unix.Native; using ILogger = MediaBrowser.Model.Logging.ILogger; using X509Certificate = System.Security.Cryptography.X509Certificates.X509Certificate; using System.Threading; +using InteropServices = System.Runtime.InteropServices; namespace MediaBrowser.Server.Mono { @@ -87,12 +88,19 @@ namespace MediaBrowser.Server.Mono { if (string.IsNullOrEmpty(programDataPath)) { - programDataPath = ApplicationPathHelper.GetProgramDataPath(applicationPath); + if (InteropServices.RuntimeInformation.IsOSPlatform(InteropServices.OSPlatform.Windows)) + { + programDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "jellyfin"); + } + else + { + programDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".jellyfin"); + } } var appFolderPath = Path.GetDirectoryName(applicationPath); - return new ServerApplicationPaths(programDataPath, appFolderPath, Path.GetDirectoryName(applicationPath)); + return new ServerApplicationPaths(programDataPath, appFolderPath, appFolderPath); } private static void RunApplication(ServerApplicationPaths appPaths, ILogManager logManager, StartupOptions options) -- cgit v1.2.3 From b79f6e4ba0c2aa761b2fe016ca531dfdf6273b0e Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Thu, 13 Dec 2018 11:30:39 +0100 Subject: Use XDG_DATA_HOME as base path for *nix sytems --- MediaBrowser.Server.Mono/Program.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Server.Mono/Program.cs') diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs index 8d0c9ee0e..21de06ccc 100644 --- a/MediaBrowser.Server.Mono/Program.cs +++ b/MediaBrowser.Server.Mono/Program.cs @@ -90,14 +90,21 @@ namespace MediaBrowser.Server.Mono { if (InteropServices.RuntimeInformation.IsOSPlatform(InteropServices.OSPlatform.Windows)) { - programDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "jellyfin"); + programDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); } else { - programDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".jellyfin"); + // $XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored. + programDataPath = Environment.GetEnvironmentVariable("XDG_DATA_HOME"); + // If $XDG_DATA_HOME is either not set or empty, $HOME/.local/share should be used. + if (string.IsNullOrEmpty(programDataPath)){ + programDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share"); + } } } + programDataPath = Path.Combine(programDataPath, "jellyfin"); + var appFolderPath = Path.GetDirectoryName(applicationPath); return new ServerApplicationPaths(programDataPath, appFolderPath, appFolderPath); -- cgit v1.2.3