From 5623d4b63217cf5d786f0c9ac5407d7b3e6d8831 Mon Sep 17 00:00:00 2001
From: Bond_009 <bond.009@outlook.com>
Date: Sun, 6 Jan 2019 13:53:35 +0100
Subject: [PATCH] BaseApplicationPaths set up default config and log dir paths

---
 Jellyfin.Server/Program.cs | 28 ++++++----------------------
 1 file changed, 6 insertions(+), 22 deletions(-)

diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs
index 03fdacb26f..f1559e8852 100644
--- a/Jellyfin.Server/Program.cs
+++ b/Jellyfin.Server/Program.cs
@@ -47,6 +47,8 @@ namespace Jellyfin.Server
             }
 
             ServerApplicationPaths appPaths = createApplicationPaths(options);
+            // $JELLYFIN_LOG_DIR needs to be set for the logger configuration manager
+            Environment.SetEnvironmentVariable("JELLYFIN_LOG_DIR", appPaths.LogDirectoryPath);
             await createLogger(appPaths);
             _loggerFactory = new SerilogLoggerFactory();
             _logger = _loggerFactory.CreateLogger("Main");
@@ -140,23 +142,8 @@ namespace Jellyfin.Server
                 }
                 else
                 {
-                    if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
-                    {
-                        configDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
-                    }
-                    else
-                    {
-                        // $XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored.
-                        configDir = Environment.GetEnvironmentVariable("XDG_CONFIG_HOME");
-                        // If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config should be used.
-                        if (string.IsNullOrEmpty(configDir))
-                        {
-                            configDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share");
-                        }
-                    }
-                    configDir = Path.Combine(configDir, "jellyfin");
-                    // Ensure the dir exists
-                    Directory.CreateDirectory(configDir);
+                    // Let BaseApplicationPaths set up the default value
+                    configDir = null;
                 }
             }
 
@@ -169,12 +156,9 @@ namespace Jellyfin.Server
                 }
                 else
                 {
-                    logDir = Path.Combine(programDataPath, "logs");
-                    // Ensure the dir exists
-                    Directory.CreateDirectory(logDir);
+                    // Let BaseApplicationPaths set up the default value
+                    logDir = null;
                 }
-                // $JELLYFIN_LOG_DIR needs to be set for the logger configuration manager
-                Environment.SetEnvironmentVariable("JELLYFIN_LOG_DIR", logDir);
             }
 
             string appPath = AppContext.BaseDirectory;