Переглянути джерело

Rename command line option to --nowebclient and config setting to HostWebClient

Mark Monteiro 5 роки тому
батько
коміт
aa546dd36a

+ 1 - 1
Emby.Server.Implementations/ConfigurationOptions.cs

@@ -15,7 +15,7 @@ namespace Emby.Server.Implementations
         /// </summary>
         public static Dictionary<string, string> DefaultConfiguration => new Dictionary<string, string>
         {
-            { NoWebContentKey, bool.FalseString },
+            { HostWebClientKey, bool.TrueString },
             { HttpListenerHost.DefaultRedirectKey, "web/index.html" },
             { FfmpegProbeSizeKey, "1G" },
             { FfmpegAnalyzeDurationKey, "200M" },

+ 1 - 1
Emby.Server.Implementations/EntryPoints/StartupWizard.cs

@@ -37,7 +37,7 @@ namespace Emby.Server.Implementations.EntryPoints
                 return Task.CompletedTask;
             }
 
-            if (_appConfig.NoWebContent())
+            if (!_appConfig.HostWebClient())
             {
                 BrowserLauncher.OpenSwaggerPage(_appHost);
             }

+ 2 - 2
Jellyfin.Server/Program.cs

@@ -490,9 +490,9 @@ namespace Jellyfin.Server
             IApplicationPaths appPaths,
             IConfiguration? startupConfig = null)
         {
-            // Use the swagger API page as the default redirect path if not hosting the jellyfin-web content
+            // Use the swagger API page as the default redirect path if not hosting the web client
             var inMemoryDefaultConfig = ConfigurationOptions.DefaultConfiguration;
-            if (startupConfig != null && startupConfig.NoWebContent())
+            if (startupConfig != null && !startupConfig.HostWebClient())
             {
                 inMemoryDefaultConfig[HttpListenerHost.DefaultRedirectKey] = "swagger/index.html";
             }

+ 3 - 3
Jellyfin.Server/Properties/launchSettings.json

@@ -3,9 +3,9 @@
     "Jellyfin.Server": {
       "commandName": "Project"
     },
-    "Jellyfin.Server (nowebcontent)": {
+    "Jellyfin.Server (nowebclient)": {
       "commandName": "Project",
-      "commandLineArgs": "--nowebcontent"
+      "commandLineArgs": "--nowebclient"
     }
   }
-}
+}

+ 5 - 5
Jellyfin.Server/StartupOptions.cs

@@ -19,10 +19,10 @@ namespace Jellyfin.Server
         public string? DataDir { get; set; }
 
         /// <summary>
-        /// Gets or sets a value indicating whether the server should not host static web content.
+        /// Gets or sets a value indicating whether the server should not host the web client.
         /// </summary>
-        [Option(ConfigurationExtensions.NoWebContentKey, Required = false, HelpText = "Indicates that the web server should not host any static web content.")]
-        public bool NoWebContent { get; set; }
+        [Option("nowebclient", Required = false, HelpText = "Indicates that the web server should not host the web client.")]
+        public bool NoWebClient { get; set; }
 
         /// <summary>
         /// Gets or sets the path to the web directory.
@@ -84,9 +84,9 @@ namespace Jellyfin.Server
         {
             var config = new Dictionary<string, string>();
 
-            if (NoWebContent)
+            if (NoWebClient)
             {
-                config.Add(ConfigurationExtensions.NoWebContentKey, bool.TrueString);
+                config.Add(ConfigurationExtensions.HostWebClientKey, bool.FalseString);
             }
 
             return config;

+ 4 - 4
MediaBrowser.Controller/Extensions/ConfigurationExtensions.cs

@@ -9,9 +9,9 @@ namespace MediaBrowser.Controller.Extensions
     public static class ConfigurationExtensions
     {
         /// <summary>
-        /// The key for a setting that indicates whether the application should host static web content.
+        /// The key for a setting that indicates whether the application should host web client content.
         /// </summary>
-        public const string NoWebContentKey = "nowebcontent";
+        public const string HostWebClientKey = "hostwebclient";
 
         /// <summary>
         /// The key for the FFmpeg probe size option.
@@ -34,8 +34,8 @@ namespace MediaBrowser.Controller.Extensions
         /// <param name="configuration">The configuration to retrieve the value from.</param>
         /// <returns>The parsed config value.</returns>
         /// <exception cref="FormatException">The config value is not a valid bool string. See <see cref="bool.Parse(string)"/>.</exception>
-        public static bool NoWebContent(this IConfiguration configuration)
-            => configuration.GetValue<bool>(NoWebContentKey);
+        public static bool HostWebClient(this IConfiguration configuration)
+            => configuration.GetValue<bool>(HostWebClientKey);
 
         /// <summary>
         /// Gets the FFmpeg probe size from the <see cref="IConfiguration" />.

+ 15 - 12
MediaBrowser.WebDashboard/Api/DashboardService.cs

@@ -136,15 +136,18 @@ namespace MediaBrowser.WebDashboard.Api
             _fileSystem = fileSystem;
             _resultFactory = resultFactory;
 
-            // Validate web content path
-            string webContentPath = DashboardUIPath;
-            bool webContentPathValid = appConfig.NoWebContent() || (Directory.Exists(webContentPath) && Directory.GetFiles(webContentPath).Any());
-            if (!webContentPathValid)
+            // If hosting the web client, validate the client content path
+            if (appConfig.HostWebClient())
             {
-                throw new InvalidOperationException(
-                    "The server is expected to host web content, but the provided content directory is either " +
-                    $"invalid or empty: {webContentPath}. If you do not want to host web content with the server, " +
-                    $"you may set the '{Controller.Extensions.ConfigurationExtensions.NoWebContentKey}' flag.");
+                string webContentPath = DashboardUIPath;
+                if (!Directory.Exists(webContentPath) || !Directory.GetFiles(webContentPath).Any())
+                {
+                    throw new InvalidOperationException(
+                        "The server is expected to host the web client, but the provided content directory is either " +
+                        $"invalid or empty: {webContentPath}. If you do not want to host the web client with the " +
+                        "server, you may set the '--nowebclient' command line flag, or set" +
+                        $"'{Controller.Extensions.ConfigurationExtensions.HostWebClientKey}=false' in your config settings.");
+                }
             }
         }
 
@@ -156,13 +159,13 @@ namespace MediaBrowser.WebDashboard.Api
 
         /// <summary>
         /// Gets the path of the directory containing the static web interface content, or null if the server is not
-        /// hosting the static web content.
+        /// hosting the web client.
         /// </summary>
         public string DashboardUIPath
         {
             get
             {
-                if (_appConfig.NoWebContent())
+                if (!_appConfig.HostWebClient())
                 {
                     return null;
                 }
@@ -329,7 +332,7 @@ namespace MediaBrowser.WebDashboard.Api
         /// <returns>System.Object.</returns>
         public async Task<object> Get(GetDashboardResource request)
         {
-            if (_appConfig.NoWebContent() || DashboardUIPath == null)
+            if (!_appConfig.HostWebClient() || DashboardUIPath == null)
             {
                 throw new ResourceNotFoundException();
             }
@@ -405,7 +408,7 @@ namespace MediaBrowser.WebDashboard.Api
 
         public async Task<object> Get(GetDashboardPackage request)
         {
-            if (_appConfig.NoWebContent() || DashboardUIPath == null)
+            if (!_appConfig.HostWebClient() || DashboardUIPath == null)
             {
                 throw new ResourceNotFoundException();
             }