Merge pull request #516 from Bond-009/env
Remove useless properties from IEnvironmentInfo
This commit is contained in:
commit
3d867c2c46
|
@ -44,13 +44,13 @@ namespace IsoMounter
|
||||||
_logger.LogDebug(
|
_logger.LogDebug(
|
||||||
"[{0}] System PATH is currently set to [{1}].",
|
"[{0}] System PATH is currently set to [{1}].",
|
||||||
Name,
|
Name,
|
||||||
EnvironmentInfo.GetEnvironmentVariable("PATH") ?? ""
|
Environment.GetEnvironmentVariable("PATH") ?? ""
|
||||||
);
|
);
|
||||||
|
|
||||||
_logger.LogDebug(
|
_logger.LogDebug(
|
||||||
"[{0}] System path separator is [{1}].",
|
"[{0}] System path separator is [{1}].",
|
||||||
Name,
|
Name,
|
||||||
EnvironmentInfo.PathSeparator
|
Path.PathSeparator
|
||||||
);
|
);
|
||||||
|
|
||||||
_logger.LogDebug(
|
_logger.LogDebug(
|
||||||
|
@ -118,25 +118,27 @@ namespace IsoMounter
|
||||||
public bool CanMount(string path)
|
public bool CanMount(string path)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (EnvironmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Linux) {
|
if (EnvironmentInfo.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.Linux)
|
||||||
_logger.LogInformation(
|
{
|
||||||
"[{0}] Checking we can attempt to mount [{1}], Extension = [{2}], Operating System = [{3}], Executables Available = [{4}].",
|
|
||||||
Name,
|
|
||||||
path,
|
|
||||||
Path.GetExtension(path),
|
|
||||||
EnvironmentInfo.OperatingSystem,
|
|
||||||
ExecutablesAvailable.ToString()
|
|
||||||
);
|
|
||||||
|
|
||||||
if (ExecutablesAvailable) {
|
|
||||||
return string.Equals(Path.GetExtension(path), ".iso", StringComparison.OrdinalIgnoreCase);
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
_logger.LogInformation(
|
||||||
|
"[{0}] Checking we can attempt to mount [{1}], Extension = [{2}], Operating System = [{3}], Executables Available = [{4}].",
|
||||||
|
Name,
|
||||||
|
path,
|
||||||
|
Path.GetExtension(path),
|
||||||
|
EnvironmentInfo.OperatingSystem,
|
||||||
|
ExecutablesAvailable.ToString()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (ExecutablesAvailable)
|
||||||
|
{
|
||||||
|
return string.Equals(Path.GetExtension(path), ".iso", StringComparison.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task Install(CancellationToken cancellationToken)
|
public Task Install(CancellationToken cancellationToken)
|
||||||
|
@ -211,18 +213,16 @@ namespace IsoMounter
|
||||||
private string GetFullPathForExecutable(string name)
|
private string GetFullPathForExecutable(string name)
|
||||||
{
|
{
|
||||||
|
|
||||||
foreach (string test in (EnvironmentInfo.GetEnvironmentVariable("PATH") ?? "").Split(EnvironmentInfo.PathSeparator)) {
|
foreach (string test in (Environment.GetEnvironmentVariable("PATH") ?? "").Split(Path.PathSeparator))
|
||||||
|
{
|
||||||
string path = test.Trim();
|
string path = test.Trim();
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(path) && FileSystem.FileExists(path = Path.Combine(path, name))) {
|
if (!String.IsNullOrEmpty(path) && FileSystem.FileExists(path = Path.Combine(path, name))) {
|
||||||
return FileSystem.GetFullPath(path);
|
return FileSystem.GetFullPath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return String.Empty;
|
return string.Empty;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private uint GetUID()
|
private uint GetUID()
|
||||||
|
@ -315,9 +315,9 @@ namespace IsoMounter
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
throw new ArgumentNullException(nameof(isoPath));
|
throw new ArgumentNullException(nameof(isoPath));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -397,9 +397,9 @@ namespace IsoMounter
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
throw new ArgumentNullException(nameof(mount));
|
throw new ArgumentNullException(nameof(mount));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetUID() == 0) {
|
if (GetUID() == 0) {
|
||||||
|
@ -444,7 +444,7 @@ namespace IsoMounter
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Internal Methods
|
#region Internal Methods
|
||||||
|
|
||||||
internal void OnUnmount(LinuxMount mount)
|
internal void OnUnmount(LinuxMount mount)
|
||||||
|
|
|
@ -1188,8 +1188,7 @@ namespace Emby.Server.Implementations
|
||||||
HttpClient,
|
HttpClient,
|
||||||
ZipClient,
|
ZipClient,
|
||||||
ProcessFactory,
|
ProcessFactory,
|
||||||
5000,
|
5000);
|
||||||
EnvironmentInfo);
|
|
||||||
|
|
||||||
MediaEncoder = mediaEncoder;
|
MediaEncoder = mediaEncoder;
|
||||||
RegisterSingleInstance(MediaEncoder);
|
RegisterSingleInstance(MediaEncoder);
|
||||||
|
@ -1647,25 +1646,25 @@ namespace Emby.Server.Implementations
|
||||||
// Gets all plugin assemblies by first reading all bytes of the .dll and calling Assembly.Load against that
|
// Gets all plugin assemblies by first reading all bytes of the .dll and calling Assembly.Load against that
|
||||||
// This will prevent the .dll file from getting locked, and allow us to replace it when needed
|
// This will prevent the .dll file from getting locked, and allow us to replace it when needed
|
||||||
|
|
||||||
// Include composable parts in the Api assembly
|
// Include composable parts in the Api assembly
|
||||||
list.Add(GetAssembly(typeof(ApiEntryPoint)));
|
list.Add(GetAssembly(typeof(ApiEntryPoint)));
|
||||||
|
|
||||||
// Include composable parts in the Dashboard assembly
|
// Include composable parts in the Dashboard assembly
|
||||||
list.Add(GetAssembly(typeof(DashboardService)));
|
list.Add(GetAssembly(typeof(DashboardService)));
|
||||||
|
|
||||||
// Include composable parts in the Model assembly
|
// Include composable parts in the Model assembly
|
||||||
list.Add(GetAssembly(typeof(SystemInfo)));
|
list.Add(GetAssembly(typeof(SystemInfo)));
|
||||||
|
|
||||||
// Include composable parts in the Common assembly
|
// Include composable parts in the Common assembly
|
||||||
list.Add(GetAssembly(typeof(IApplicationHost)));
|
list.Add(GetAssembly(typeof(IApplicationHost)));
|
||||||
|
|
||||||
// Include composable parts in the Controller assembly
|
// Include composable parts in the Controller assembly
|
||||||
list.Add(GetAssembly(typeof(IServerApplicationHost)));
|
list.Add(GetAssembly(typeof(IServerApplicationHost)));
|
||||||
|
|
||||||
// Include composable parts in the Providers assembly
|
// Include composable parts in the Providers assembly
|
||||||
list.Add(GetAssembly(typeof(ProviderUtils)));
|
list.Add(GetAssembly(typeof(ProviderUtils)));
|
||||||
|
|
||||||
// Include composable parts in the Photos assembly
|
// Include composable parts in the Photos assembly
|
||||||
list.Add(GetAssembly(typeof(PhotoProvider)));
|
list.Add(GetAssembly(typeof(PhotoProvider)));
|
||||||
|
|
||||||
// Emby.Server implementations
|
// Emby.Server implementations
|
||||||
|
@ -1674,16 +1673,16 @@ namespace Emby.Server.Implementations
|
||||||
// MediaEncoding
|
// MediaEncoding
|
||||||
list.Add(GetAssembly(typeof(MediaBrowser.MediaEncoding.Encoder.MediaEncoder)));
|
list.Add(GetAssembly(typeof(MediaBrowser.MediaEncoding.Encoder.MediaEncoder)));
|
||||||
|
|
||||||
// Dlna
|
// Dlna
|
||||||
list.Add(GetAssembly(typeof(DlnaEntryPoint)));
|
list.Add(GetAssembly(typeof(DlnaEntryPoint)));
|
||||||
|
|
||||||
// Local metadata
|
// Local metadata
|
||||||
list.Add(GetAssembly(typeof(BoxSetXmlSaver)));
|
list.Add(GetAssembly(typeof(BoxSetXmlSaver)));
|
||||||
|
|
||||||
// Notifications
|
// Notifications
|
||||||
list.Add(GetAssembly(typeof(NotificationManager)));
|
list.Add(GetAssembly(typeof(NotificationManager)));
|
||||||
|
|
||||||
// Xbmc
|
// Xbmc
|
||||||
list.Add(GetAssembly(typeof(ArtistNfoProvider)));
|
list.Add(GetAssembly(typeof(ArtistNfoProvider)));
|
||||||
|
|
||||||
list.AddRange(GetAssembliesWithPartsInternal().Select(i => new Tuple<Assembly, string>(i, null)));
|
list.AddRange(GetAssembliesWithPartsInternal().Select(i => new Tuple<Assembly, string>(i, null)));
|
||||||
|
@ -2219,7 +2218,7 @@ namespace Emby.Server.Implementations
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This returns localhost in the case of no external dns, and the hostname if the
|
/// This returns localhost in the case of no external dns, and the hostname if the
|
||||||
/// dns is prefixed with a valid Uri prefix.
|
/// dns is prefixed with a valid Uri prefix.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="externalDns">The external dns prefix to get the hostname of.</param>
|
/// <param name="externalDns">The external dns prefix to get the hostname of.</param>
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
|
||||||
using MediaBrowser.Model.System;
|
using MediaBrowser.Model.System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace Emby.Server.Implementations.EnvironmentInfo
|
namespace Emby.Server.Implementations.EnvironmentInfo
|
||||||
{
|
{
|
||||||
// TODO: Rework @bond
|
|
||||||
public class EnvironmentInfo : IEnvironmentInfo
|
public class EnvironmentInfo : IEnvironmentInfo
|
||||||
{
|
{
|
||||||
public EnvironmentInfo(MediaBrowser.Model.System.OperatingSystem operatingSystem)
|
public EnvironmentInfo(MediaBrowser.Model.System.OperatingSystem operatingSystem)
|
||||||
|
@ -39,29 +37,6 @@ namespace Emby.Server.Implementations.EnvironmentInfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public char PathSeparator
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return Path.PathSeparator;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Architecture SystemArchitecture { get { return RuntimeInformation.OSArchitecture; } }
|
public Architecture SystemArchitecture { get { return RuntimeInformation.OSArchitecture; } }
|
||||||
|
|
||||||
public string GetEnvironmentVariable(string name)
|
|
||||||
{
|
|
||||||
return Environment.GetEnvironmentVariable(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public string StackTrace
|
|
||||||
{
|
|
||||||
get { return Environment.StackTrace; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetProcessEnvironmentVariable(string name, string value)
|
|
||||||
{
|
|
||||||
Environment.SetEnvironmentVariable(name, value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
private readonly string _originalFFMpegPath;
|
private readonly string _originalFFMpegPath;
|
||||||
private readonly string _originalFFProbePath;
|
private readonly string _originalFFProbePath;
|
||||||
private readonly int DefaultImageExtractionTimeoutMs;
|
private readonly int DefaultImageExtractionTimeoutMs;
|
||||||
private readonly IEnvironmentInfo _environmentInfo;
|
|
||||||
|
|
||||||
public MediaEncoder(ILogger logger,
|
public MediaEncoder(ILogger logger,
|
||||||
IJsonSerializer jsonSerializer,
|
IJsonSerializer jsonSerializer,
|
||||||
|
@ -89,8 +88,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
IHttpClient httpClient,
|
IHttpClient httpClient,
|
||||||
IZipClient zipClient,
|
IZipClient zipClient,
|
||||||
IProcessFactory processFactory,
|
IProcessFactory processFactory,
|
||||||
int defaultImageExtractionTimeoutMs,
|
int defaultImageExtractionTimeoutMs)
|
||||||
IEnvironmentInfo environmentInfo)
|
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_jsonSerializer = jsonSerializer;
|
_jsonSerializer = jsonSerializer;
|
||||||
|
@ -107,46 +105,13 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
_zipClient = zipClient;
|
_zipClient = zipClient;
|
||||||
_processFactory = processFactory;
|
_processFactory = processFactory;
|
||||||
DefaultImageExtractionTimeoutMs = defaultImageExtractionTimeoutMs;
|
DefaultImageExtractionTimeoutMs = defaultImageExtractionTimeoutMs;
|
||||||
_environmentInfo = environmentInfo;
|
|
||||||
FFProbePath = ffProbePath;
|
FFProbePath = ffProbePath;
|
||||||
FFMpegPath = ffMpegPath;
|
FFMpegPath = ffMpegPath;
|
||||||
_originalFFProbePath = ffProbePath;
|
_originalFFProbePath = ffProbePath;
|
||||||
_originalFFMpegPath = ffMpegPath;
|
_originalFFMpegPath = ffMpegPath;
|
||||||
|
|
||||||
_hasExternalEncoder = hasExternalEncoder;
|
_hasExternalEncoder = hasExternalEncoder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly object _logLock = new object();
|
|
||||||
public void SetLogFilename(string name)
|
|
||||||
{
|
|
||||||
lock (_logLock)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_environmentInfo.SetProcessEnvironmentVariable("FFREPORT", "file=" + name + ":level=32");
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.LogError(ex, "Error setting FFREPORT environment variable");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ClearLogFilename()
|
|
||||||
{
|
|
||||||
lock (_logLock)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_environmentInfo.SetProcessEnvironmentVariable("FFREPORT", null);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.LogError(ex, "Error setting FFREPORT environment variable");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string EncoderLocationType
|
public string EncoderLocationType
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -362,7 +327,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
|
|
||||||
private Tuple<string, string> GetPathsFromDirectory(string path)
|
private Tuple<string, string> GetPathsFromDirectory(string path)
|
||||||
{
|
{
|
||||||
// Since we can't predict the file extension, first try directly within the folder
|
// Since we can't predict the file extension, first try directly within the folder
|
||||||
// If that doesn't pan out, then do a recursive search
|
// If that doesn't pan out, then do a recursive search
|
||||||
var files = FileSystem.GetFilePaths(path);
|
var files = FileSystem.GetFilePaths(path);
|
||||||
|
|
||||||
|
@ -525,7 +490,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
CreateNoWindow = true,
|
CreateNoWindow = true,
|
||||||
UseShellExecute = false,
|
UseShellExecute = false,
|
||||||
|
|
||||||
// Must consume both or ffmpeg may hang due to deadlocks. See comments below.
|
// Must consume both or ffmpeg may hang due to deadlocks. See comments below.
|
||||||
RedirectStandardOutput = true,
|
RedirectStandardOutput = true,
|
||||||
FileName = FFProbePath,
|
FileName = FFProbePath,
|
||||||
Arguments = string.Format(args, probeSizeArgument, inputPath).Trim(),
|
Arguments = string.Format(args, probeSizeArgument, inputPath).Trim(),
|
||||||
|
@ -648,7 +613,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
var tempExtractPath = Path.Combine(ConfigurationManager.ApplicationPaths.TempDirectory, Guid.NewGuid() + ".jpg");
|
var tempExtractPath = Path.Combine(ConfigurationManager.ApplicationPaths.TempDirectory, Guid.NewGuid() + ".jpg");
|
||||||
FileSystem.CreateDirectory(FileSystem.GetDirectoryName(tempExtractPath));
|
FileSystem.CreateDirectory(FileSystem.GetDirectoryName(tempExtractPath));
|
||||||
|
|
||||||
// apply some filters to thumbnail extracted below (below) crop any black lines that we made and get the correct ar then scale to width 600.
|
// apply some filters to thumbnail extracted below (below) crop any black lines that we made and get the correct ar then scale to width 600.
|
||||||
// This filter chain may have adverse effects on recorded tv thumbnails if ar changes during presentation ex. commercials @ diff ar
|
// This filter chain may have adverse effects on recorded tv thumbnails if ar changes during presentation ex. commercials @ diff ar
|
||||||
var vf = "scale=600:trunc(600/dar/2)*2";
|
var vf = "scale=600:trunc(600/dar/2)*2";
|
||||||
|
|
||||||
|
@ -676,7 +641,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var mapArg = imageStreamIndex.HasValue ? (" -map 0:v:" + imageStreamIndex.Value.ToString(CultureInfo.InvariantCulture)) : string.Empty;
|
var mapArg = imageStreamIndex.HasValue ? (" -map 0:v:" + imageStreamIndex.Value.ToString(CultureInfo.InvariantCulture)) : string.Empty;
|
||||||
|
|
||||||
var enableThumbnail = !new List<string> { "wtv" }.Contains(container ?? string.Empty, StringComparer.OrdinalIgnoreCase);
|
var enableThumbnail = !new List<string> { "wtv" }.Contains(container ?? string.Empty, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
|
@ -8,10 +8,6 @@ namespace MediaBrowser.Model.System
|
||||||
string OperatingSystemName { get; }
|
string OperatingSystemName { get; }
|
||||||
string OperatingSystemVersion { get; }
|
string OperatingSystemVersion { get; }
|
||||||
Architecture SystemArchitecture { get; }
|
Architecture SystemArchitecture { get; }
|
||||||
string GetEnvironmentVariable(string name);
|
|
||||||
void SetProcessEnvironmentVariable(string name, string value);
|
|
||||||
string StackTrace { get; }
|
|
||||||
char PathSeparator { get; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum OperatingSystem
|
public enum OperatingSystem
|
||||||
|
|
Loading…
Reference in New Issue
Block a user