aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua M. Boniface <joshua@boniface.me>2019-01-18 14:32:09 -0500
committerGitHub <noreply@github.com>2019-01-18 14:32:09 -0500
commitbf7d8fdf4abaecb343692b93b914167036409c67 (patch)
tree0e9a56c8b3f80537c1fa8920c7bb5e3c9266fe12
parent440350a3f649b648f43a1d531153cc2c68edbee5 (diff)
parent582226c13366a801648e94b421f6a7cb0fe0141b (diff)
Merge pull request #589 from ploughpuff/patch-1
Ensure config and log folders exist
-rw-r--r--Jellyfin.Server/Program.cs28
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);