diff --git a/Emby.Server.Implementations/StartupOptions.cs b/Emby.Server.Implementations/StartupOptions.cs index fca60afb88..f4bb94f740 100644 --- a/Emby.Server.Implementations/StartupOptions.cs +++ b/Emby.Server.Implementations/StartupOptions.cs @@ -7,8 +7,8 @@ namespace Emby.Server.Implementations /// public class StartupOptions { - [Option('d', "programdata", Required = false, HelpText = "Path to use for program data (databases files etc.).")] - public string PathProgramData { get; set; } + [Option('d', "datadir", Required = false, HelpText = "Path to use for the data folder (databases files etc.).")] + public string PathData { get; set; } [Option('c', "configdir", Required = false, HelpText = "Path to use for config data (user policies and puctures).")] public string PathConfig { get; set; } diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs index dbfd59ebf4..2f7edee656 100644 --- a/Jellyfin.Server/Program.cs +++ b/Jellyfin.Server/Program.cs @@ -27,6 +27,7 @@ using ILogger = Microsoft.Extensions.Logging.ILogger; namespace Jellyfin.Server { using CommandLine; + using System.Text.RegularExpressions; public static class Program { @@ -37,6 +38,18 @@ namespace Jellyfin.Server public static async Task Main(string[] args) { + // For backwards compatibility. + // Modify any input arguments now which start with single-hyphen to POSIX standard + // double-hyphen to allow parsing by CommandLineParser package. + var pattern = @"^(-[^-\s]{2})"; // Match -xx, not -x, not --xx, not xx + var substitution = @"-$1"; // Prepend with additional single-hyphen + var regex = new Regex(pattern); + + for (var i = 0; i < args.Length; i++) + { + args[i] = regex.Replace(args[i], substitution); + } + // For CommandLine package, change default behaviour to output errors to stdout (instead of stderr) var parser = new Parser(config => config.HelpWriter = Console.Out); @@ -139,9 +152,9 @@ namespace Jellyfin.Server string programDataPath = Environment.GetEnvironmentVariable("JELLYFIN_DATA_PATH"); if (string.IsNullOrEmpty(programDataPath)) { - if (options.PathProgramData != null) + if (options.PathData != null) { - programDataPath = options.PathProgramData; + programDataPath = options.PathData; } else {