Merge pull request #516 from Bond-009/env

Remove useless properties from IEnvironmentInfo
This commit is contained in:
Andrew Rabert 2019-01-09 22:08:58 -05:00 committed by GitHub
commit 3d867c2c46
5 changed files with 45 additions and 110 deletions

View File

@ -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)

View File

@ -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>

View File

@ -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);
}
} }
} }

View File

@ -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);

View File

@ -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