mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 09:04:42 +01:00
Move Options to Jellyfin.Server and create interface file
Changes following review comments.
This commit is contained in:
@@ -43,6 +43,7 @@ using Emby.Server.Implementations.ScheduledTasks;
|
||||
using Emby.Server.Implementations.Security;
|
||||
using Emby.Server.Implementations.Serialization;
|
||||
using Emby.Server.Implementations.Session;
|
||||
using Emby.Server.Implementations.ParsedStartupOptions;
|
||||
using Emby.Server.Implementations.Threading;
|
||||
using Emby.Server.Implementations.TV;
|
||||
using Emby.Server.Implementations.Updates;
|
||||
@@ -141,7 +142,7 @@ namespace Emby.Server.Implementations
|
||||
return false;
|
||||
}
|
||||
|
||||
if (StartupOptions.Service)
|
||||
if (StartupOptions.IsService)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -343,7 +344,7 @@ namespace Emby.Server.Implementations
|
||||
protected IHttpResultFactory HttpResultFactory { get; private set; }
|
||||
protected IAuthService AuthService { get; private set; }
|
||||
|
||||
public StartupOptions StartupOptions { get; private set; }
|
||||
public IStartupOptions StartupOptions { get; private set; }
|
||||
|
||||
internal IImageEncoder ImageEncoder { get; private set; }
|
||||
|
||||
@@ -364,7 +365,7 @@ namespace Emby.Server.Implementations
|
||||
/// </summary>
|
||||
public ApplicationHost(ServerApplicationPaths applicationPaths,
|
||||
ILoggerFactory loggerFactory,
|
||||
StartupOptions options,
|
||||
IStartupOptions options,
|
||||
IFileSystem fileSystem,
|
||||
IEnvironmentInfo environmentInfo,
|
||||
IImageEncoder imageEncoder,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Emby.Naming\Emby.Naming.csproj" />
|
||||
@@ -22,7 +22,6 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommandLineParser" Version="2.4.3" />
|
||||
<PackageReference Include="ServiceStack.Text.Core" Version="5.4.0" />
|
||||
<PackageReference Include="sharpcompress" Version="0.22.0" />
|
||||
<PackageReference Include="SimpleInjector" Version="4.4.2" />
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace Emby.Server.Implementations.EntryPoints
|
||||
{
|
||||
var options = ((ApplicationHost)_appHost).StartupOptions;
|
||||
|
||||
if (!options.NoAutoRunWebApp)
|
||||
if (options.AutoRunWebApp)
|
||||
{
|
||||
BrowserLauncher.OpenWebApp(_appHost);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Model.IO;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Emby.Server.Implementations.ParsedStartupOptions;
|
||||
|
||||
namespace Emby.Server.Implementations.FFMpeg
|
||||
{
|
||||
@@ -28,10 +29,10 @@ namespace Emby.Server.Implementations.FFMpeg
|
||||
_ffmpegInstallInfo = ffmpegInstallInfo;
|
||||
}
|
||||
|
||||
public FFMpegInfo GetFFMpegInfo(StartupOptions options)
|
||||
public FFMpegInfo GetFFMpegInfo(IStartupOptions options)
|
||||
{
|
||||
var customffMpegPath = options.FFmpeg;
|
||||
var customffProbePath = options.FFprobe;
|
||||
var customffMpegPath = options.FFmpegPath;
|
||||
var customffProbePath = options.FFprobePath;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(customffMpegPath) && !string.IsNullOrWhiteSpace(customffProbePath))
|
||||
{
|
||||
|
||||
55
Emby.Server.Implementations/IStartupOptions.cs
Normal file
55
Emby.Server.Implementations/IStartupOptions.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
namespace Emby.Server.Implementations.ParsedStartupOptions
|
||||
{
|
||||
public interface IStartupOptions
|
||||
{
|
||||
/// <summary>
|
||||
/// --datadir
|
||||
/// </summary>
|
||||
string DataDir { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --configdir
|
||||
/// </summary>
|
||||
string ConfigDir { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --logdir
|
||||
/// </summary>
|
||||
string LogDir { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --ffmpeg
|
||||
/// </summary>
|
||||
string FFmpegPath { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --ffprobe
|
||||
/// </summary>
|
||||
string FFprobePath { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --service
|
||||
/// </summary>
|
||||
bool IsService { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --noautorunwebapp
|
||||
/// </summary>
|
||||
bool AutoRunWebApp { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --package-name
|
||||
/// </summary>
|
||||
string PackageName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --restartpath
|
||||
/// </summary>
|
||||
string RestartPath { get; }
|
||||
|
||||
/// <summary>
|
||||
/// --restartargs
|
||||
/// </summary>
|
||||
string RestartArgs { get; }
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
namespace Emby.Server.Implementations
|
||||
{
|
||||
using CommandLine;
|
||||
|
||||
/// <summary>
|
||||
/// Class used by CommandLine package when parsing the command line arguments.
|
||||
/// </summary>
|
||||
public class StartupOptions
|
||||
{
|
||||
[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; }
|
||||
|
||||
[Option('l', "logdir", Required = false, HelpText = "Path to use for writing log files.")]
|
||||
public string PathLog { get; set; }
|
||||
|
||||
|
||||
[Option("ffmpeg", Required = false, HelpText = "Path to external FFmpeg exe to use in place of built-in.")]
|
||||
public string FFmpeg { get; set; }
|
||||
|
||||
[Option("ffprobe", Required = false, HelpText = "ffmpeg and ffprobe switches must be supplied together.")]
|
||||
public string FFprobe { get; set; }
|
||||
|
||||
|
||||
[Option("service", Required = false, HelpText = "Run as headless service.")]
|
||||
public bool Service { get; set; }
|
||||
|
||||
[Option("noautorunwebapp", Required = false, HelpText = "Run headless if startup wizard is complete.")]
|
||||
public bool NoAutoRunWebApp { get; set; }
|
||||
|
||||
[Option("package-name", Required = false, HelpText = "Used when packaging Jellyfin (example, synology).")]
|
||||
public string PackageName { get; set; }
|
||||
|
||||
|
||||
[Option("restartpath", Required = false, HelpText = "Path to reset script.")]
|
||||
public string RestartPath { get; set; }
|
||||
|
||||
[Option("restartargs", Required = false, HelpText = "Arguments for restart script.")]
|
||||
public string RestartArgs { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user