diff options
| author | Joshua M. Boniface <joshua@boniface.me> | 2019-01-18 14:32:09 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-18 14:32:09 -0500 |
| commit | bf7d8fdf4abaecb343692b93b914167036409c67 (patch) | |
| tree | 0e9a56c8b3f80537c1fa8920c7bb5e3c9266fe12 /Jellyfin.Server/Program.cs | |
| parent | 440350a3f649b648f43a1d531153cc2c68edbee5 (diff) | |
| parent | 582226c13366a801648e94b421f6a7cb0fe0141b (diff) | |
Merge pull request #589 from ploughpuff/patch-1
Ensure config and log folders exist
Diffstat (limited to 'Jellyfin.Server/Program.cs')
| -rw-r--r-- | Jellyfin.Server/Program.cs | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs index acbe5c714..46a80b492 100644 --- a/Jellyfin.Server/Program.cs +++ b/Jellyfin.Server/Program.cs @@ -45,7 +45,8 @@ namespace Jellyfin.Server Console.WriteLine(version.ToString()); } - ServerApplicationPaths appPaths = createApplicationPaths(options); + 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); @@ -130,7 +131,7 @@ namespace Jellyfin.Server } } - private static ServerApplicationPaths createApplicationPaths(StartupOptions options) + private static ServerApplicationPaths CreateApplicationPaths(StartupOptions options) { string programDataPath = Environment.GetEnvironmentVariable("JELLYFIN_DATA_PATH"); if (string.IsNullOrEmpty(programDataPath)) @@ -155,12 +156,21 @@ namespace Jellyfin.Server programDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share"); } } + programDataPath = Path.Combine(programDataPath, "jellyfin"); - // Ensure the dir exists - Directory.CreateDirectory(programDataPath); } } + if (string.IsNullOrEmpty(programDataPath)) + { + Console.WriteLine("Cannot continue without path to program data folder (try -programdata)"); + Environment.Exit(1); + } + else + { + Directory.CreateDirectory(programDataPath); + } + string configDir = Environment.GetEnvironmentVariable("JELLYFIN_CONFIG_DIR"); if (string.IsNullOrEmpty(configDir)) { @@ -175,6 +185,11 @@ namespace Jellyfin.Server } } + if (configDir != null) + { + Directory.CreateDirectory(configDir); + } + string logDir = Environment.GetEnvironmentVariable("JELLYFIN_LOG_DIR"); if (string.IsNullOrEmpty(logDir)) { @@ -189,6 +204,11 @@ namespace Jellyfin.Server } } + if (logDir != null) + { + Directory.CreateDirectory(logDir); + } + string appPath = AppContext.BaseDirectory; return new ServerApplicationPaths(programDataPath, appPath, appPath, logDir, configDir); |
