mirror of
https://github.com/Radarr/Radarr.git
synced 2024-08-18 08:19:38 +02:00
Cleanup Dual Target and Mono References
This commit is contained in:
parent
500bc3a571
commit
0f6b11f55d
@ -278,7 +278,7 @@ public void GetUpdateClientFolder()
|
|||||||
[Test]
|
[Test]
|
||||||
public void GetUpdateClientExePath()
|
public void GetUpdateClientExePath()
|
||||||
{
|
{
|
||||||
GetIAppDirectoryInfo().GetUpdateClientExePath(PlatformType.DotNet).Should().BeEquivalentTo(@"C:\Temp\radarr_update\Radarr.Update.exe".AsOsAgnostic());
|
GetIAppDirectoryInfo().GetUpdateClientExePath().Should().BeEquivalentTo(@"C:\Temp\radarr_update\Radarr.Update".AsOsAgnostic().ProcessNameToExe());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -2,13 +2,6 @@
|
|||||||
|
|
||||||
namespace NzbDrone.Common.EnvironmentInfo
|
namespace NzbDrone.Common.EnvironmentInfo
|
||||||
{
|
{
|
||||||
public enum PlatformType
|
|
||||||
{
|
|
||||||
DotNet = 0,
|
|
||||||
Mono = 1,
|
|
||||||
NetCore = 2
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IPlatformInfo
|
public interface IPlatformInfo
|
||||||
{
|
{
|
||||||
Version Version { get; }
|
Version Version { get; }
|
||||||
@ -16,32 +9,19 @@ public interface IPlatformInfo
|
|||||||
|
|
||||||
public class PlatformInfo : IPlatformInfo
|
public class PlatformInfo : IPlatformInfo
|
||||||
{
|
{
|
||||||
private static PlatformType _platform;
|
|
||||||
private static Version _version;
|
private static Version _version;
|
||||||
|
|
||||||
static PlatformInfo()
|
static PlatformInfo()
|
||||||
{
|
{
|
||||||
_platform = PlatformType.NetCore;
|
|
||||||
_version = Environment.Version;
|
_version = Environment.Version;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PlatformType Platform => _platform;
|
|
||||||
public static bool IsDotNet => Platform == PlatformType.DotNet;
|
|
||||||
public static bool IsNetCore => Platform == PlatformType.NetCore;
|
|
||||||
|
|
||||||
public static string PlatformName
|
public static string PlatformName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
|
||||||
if (IsDotNet)
|
|
||||||
{
|
{
|
||||||
return ".NET";
|
return ".NET";
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return ".NET Core";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version Version => _version;
|
public Version Version => _version;
|
||||||
|
@ -267,9 +267,9 @@ public static string GetLongestCommonPath(this List<string> paths)
|
|||||||
return substring.Substring(0, lastSeparatorIndex);
|
return substring.Substring(0, lastSeparatorIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ProcessNameToExe(this string processName, PlatformType runtime)
|
public static string ProcessNameToExe(this string processName)
|
||||||
{
|
{
|
||||||
if (OsInfo.IsWindows || runtime != PlatformType.NetCore)
|
if (OsInfo.IsWindows)
|
||||||
{
|
{
|
||||||
processName += ".exe";
|
processName += ".exe";
|
||||||
}
|
}
|
||||||
@ -277,11 +277,6 @@ public static string ProcessNameToExe(this string processName, PlatformType runt
|
|||||||
return processName;
|
return processName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ProcessNameToExe(this string processName)
|
|
||||||
{
|
|
||||||
return processName.ProcessNameToExe(PlatformInfo.Platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetAppDataPath(this IAppFolderInfo appFolderInfo)
|
public static string GetAppDataPath(this IAppFolderInfo appFolderInfo)
|
||||||
{
|
{
|
||||||
return appFolderInfo.AppDataFolder;
|
return appFolderInfo.AppDataFolder;
|
||||||
@ -352,9 +347,9 @@ public static string GetUpdateClientFolder(this IAppFolderInfo appFolderInfo)
|
|||||||
return Path.Combine(GetUpdatePackageFolder(appFolderInfo), UPDATE_CLIENT_FOLDER_NAME);
|
return Path.Combine(GetUpdatePackageFolder(appFolderInfo), UPDATE_CLIENT_FOLDER_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetUpdateClientExePath(this IAppFolderInfo appFolderInfo, PlatformType runtime)
|
public static string GetUpdateClientExePath(this IAppFolderInfo appFolderInfo)
|
||||||
{
|
{
|
||||||
return Path.Combine(GetUpdateSandboxFolder(appFolderInfo), UPDATE_CLIENT_EXE_NAME).ProcessNameToExe(runtime);
|
return Path.Combine(GetUpdateSandboxFolder(appFolderInfo), UPDATE_CLIENT_EXE_NAME).ProcessNameToExe();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetDatabase(this IAppFolderInfo appFolderInfo)
|
public static string GetDatabase(this IAppFolderInfo appFolderInfo)
|
||||||
|
@ -69,7 +69,7 @@ public void Setup()
|
|||||||
.Returns(true);
|
.Returns(true);
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
Mocker.GetMock<IDiskProvider>()
|
||||||
.Setup(v => v.FileExists(It.Is<string>(s => s.EndsWith("Radarr.Update.exe"))))
|
.Setup(v => v.FileExists(It.Is<string>(s => s.EndsWith("Radarr.Update".ProcessNameToExe()))))
|
||||||
.Returns(true);
|
.Returns(true);
|
||||||
|
|
||||||
_sandboxFolder = Mocker.GetMock<IAppFolderInfo>().Object.GetUpdateSandboxFolder();
|
_sandboxFolder = Mocker.GetMock<IAppFolderInfo>().Object.GetUpdateSandboxFolder();
|
||||||
@ -165,7 +165,7 @@ public void should_start_update_client_if_updater_exists()
|
|||||||
public void should_return_with_warning_if_updater_doesnt_exists()
|
public void should_return_with_warning_if_updater_doesnt_exists()
|
||||||
{
|
{
|
||||||
Mocker.GetMock<IDiskProvider>()
|
Mocker.GetMock<IDiskProvider>()
|
||||||
.Setup(v => v.FileExists(It.Is<string>(s => s.EndsWith("Radarr.Update.exe"))))
|
.Setup(v => v.FileExists(It.Is<string>(s => s.EndsWith("Radarr.Update".ProcessNameToExe()))))
|
||||||
.Returns(false);
|
.Returns(false);
|
||||||
|
|
||||||
Subject.Execute(new ApplicationUpdateCommand());
|
Subject.Execute(new ApplicationUpdateCommand());
|
||||||
|
@ -52,7 +52,7 @@ private List<HealthCheck> RetrieveServerChecks()
|
|||||||
.AddQueryParam("version", BuildInfo.Version)
|
.AddQueryParam("version", BuildInfo.Version)
|
||||||
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
||||||
.AddQueryParam("arch", RuntimeInformation.OSArchitecture)
|
.AddQueryParam("arch", RuntimeInformation.OSArchitecture)
|
||||||
.AddQueryParam("runtime", PlatformInfo.Platform.ToString().ToLowerInvariant())
|
.AddQueryParam("runtime", "netcore")
|
||||||
.AddQueryParam("branch", _configFileProvider.Branch)
|
.AddQueryParam("branch", _configFileProvider.Branch)
|
||||||
.Build();
|
.Build();
|
||||||
try
|
try
|
||||||
|
@ -146,7 +146,7 @@ private bool InstallUpdate(UpdatePackage updatePackage)
|
|||||||
_logger.Info("Preparing client");
|
_logger.Info("Preparing client");
|
||||||
_diskTransferService.TransferFolder(_appFolderInfo.GetUpdateClientFolder(), updateSandboxFolder, TransferMode.Move);
|
_diskTransferService.TransferFolder(_appFolderInfo.GetUpdateClientFolder(), updateSandboxFolder, TransferMode.Move);
|
||||||
|
|
||||||
var updateClientExePath = _appFolderInfo.GetUpdateClientExePath(updatePackage.Runtime);
|
var updateClientExePath = _appFolderInfo.GetUpdateClientExePath();
|
||||||
|
|
||||||
if (!_diskProvider.FileExists(updateClientExePath))
|
if (!_diskProvider.FileExists(updateClientExePath))
|
||||||
{
|
{
|
||||||
@ -155,7 +155,7 @@ private bool InstallUpdate(UpdatePackage updatePackage)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set executable flag on update app
|
// Set executable flag on update app
|
||||||
if (OsInfo.IsOsx || (OsInfo.IsLinux && PlatformInfo.IsNetCore))
|
if (OsInfo.IsOsx || OsInfo.IsLinux)
|
||||||
{
|
{
|
||||||
_diskProvider.SetFilePermissions(updateClientExePath, "755", null);
|
_diskProvider.SetFilePermissions(updateClientExePath, "755", null);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Update
|
namespace NzbDrone.Core.Update
|
||||||
@ -12,6 +12,5 @@ public class UpdatePackage
|
|||||||
public UpdateChanges Changes { get; set; }
|
public UpdateChanges Changes { get; set; }
|
||||||
public string Hash { get; set; }
|
public string Hash { get; set; }
|
||||||
public string Branch { get; set; }
|
public string Branch { get; set; }
|
||||||
public PlatformType Runtime { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using FluentValidation.Validators;
|
||||||
using NzbDrone.Common.Cloud;
|
using NzbDrone.Common.Cloud;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
@ -39,7 +40,7 @@ public UpdatePackage GetLatestUpdate(string branch, Version currentVersion)
|
|||||||
.AddQueryParam("version", currentVersion)
|
.AddQueryParam("version", currentVersion)
|
||||||
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
||||||
.AddQueryParam("arch", RuntimeInformation.OSArchitecture)
|
.AddQueryParam("arch", RuntimeInformation.OSArchitecture)
|
||||||
.AddQueryParam("runtime", PlatformInfo.Platform.ToString().ToLowerInvariant())
|
.AddQueryParam("runtime", "netcore")
|
||||||
.AddQueryParam("runtimeVer", _platformInfo.Version)
|
.AddQueryParam("runtimeVer", _platformInfo.Version)
|
||||||
.AddQueryParam("dbType", _mainDatabase.DatabaseType)
|
.AddQueryParam("dbType", _mainDatabase.DatabaseType)
|
||||||
.SetSegment("branch", branch);
|
.SetSegment("branch", branch);
|
||||||
@ -67,7 +68,7 @@ public List<UpdatePackage> GetRecentUpdates(string branch, Version currentVersio
|
|||||||
.AddQueryParam("version", currentVersion)
|
.AddQueryParam("version", currentVersion)
|
||||||
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
||||||
.AddQueryParam("arch", RuntimeInformation.OSArchitecture)
|
.AddQueryParam("arch", RuntimeInformation.OSArchitecture)
|
||||||
.AddQueryParam("runtime", PlatformInfo.Platform.ToString().ToLowerInvariant())
|
.AddQueryParam("runtime", "netcore")
|
||||||
.AddQueryParam("runtimeVer", _platformInfo.Version)
|
.AddQueryParam("runtimeVer", _platformInfo.Version)
|
||||||
.SetSegment("branch", branch);
|
.SetSegment("branch", branch);
|
||||||
|
|
||||||
|
@ -247,9 +247,7 @@ protected override void CopyFileInternal(string source, string destination, bool
|
|||||||
newFile.CreateSymbolicLinkTo(fullPath);
|
newFile.CreateSymbolicLinkTo(fullPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (((PlatformInfo.Platform == PlatformType.Mono && PlatformInfo.GetVersion() >= new Version(6, 0)) ||
|
else if (!FileExists(destination) || overwrite)
|
||||||
PlatformInfo.Platform == PlatformType.NetCore) &&
|
|
||||||
(!FileExists(destination) || overwrite))
|
|
||||||
{
|
{
|
||||||
TransferFilePatched(source, destination, overwrite, false);
|
TransferFilePatched(source, destination, overwrite, false);
|
||||||
}
|
}
|
||||||
@ -294,14 +292,9 @@ protected override void MoveFileInternal(string source, string destination)
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((PlatformInfo.Platform == PlatformType.Mono && PlatformInfo.GetVersion() >= new Version(6, 0)) ||
|
|
||||||
PlatformInfo.Platform == PlatformType.NetCore)
|
|
||||||
{
|
|
||||||
TransferFilePatched(source, destination, false, true);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
base.MoveFileInternal(source, destination);
|
TransferFilePatched(source, destination, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,7 +306,7 @@ private void TransferFilePatched(string source, string destination, bool overwri
|
|||||||
// Catch the exception and attempt to handle these edgecases
|
// Catch the exception and attempt to handle these edgecases
|
||||||
|
|
||||||
// Mono 6.x till 6.10 doesn't properly try use rename first.
|
// Mono 6.x till 6.10 doesn't properly try use rename first.
|
||||||
if (move && (PlatformInfo.Platform == PlatformType.NetCore))
|
if (move)
|
||||||
{
|
{
|
||||||
if (Syscall.lstat(source, out var sourcestat) == 0 &&
|
if (Syscall.lstat(source, out var sourcestat) == 0 &&
|
||||||
Syscall.lstat(destination, out var deststat) != 0 &&
|
Syscall.lstat(destination, out var deststat) != 0 &&
|
||||||
@ -341,7 +334,7 @@ private void TransferFilePatched(string source, string destination, bool overwri
|
|||||||
var dstInfo = new FileInfo(destination);
|
var dstInfo = new FileInfo(destination);
|
||||||
var exists = dstInfo.Exists && srcInfo.Exists;
|
var exists = dstInfo.Exists && srcInfo.Exists;
|
||||||
|
|
||||||
if (PlatformInfo.Platform == PlatformType.NetCore && exists && dstInfo.Length == srcInfo.Length)
|
if (exists && dstInfo.Length == srcInfo.Length)
|
||||||
{
|
{
|
||||||
// mono 6.0, mono 6.4 and netcore 3.1 bug: full length file since utime and chmod happens at the end
|
// mono 6.0, mono 6.4 and netcore 3.1 bug: full length file since utime and chmod happens at the end
|
||||||
_logger.Debug("{3} failed to {2} file likely due to known {3} bug, attempting to {2} directly. '{0}' -> '{1}'", source, destination, move ? "move" : "copy", PlatformInfo.PlatformName);
|
_logger.Debug("{3} failed to {2} file likely due to known {3} bug, attempting to {2} directly. '{0}' -> '{1}'", source, destination, move ? "move" : "copy", PlatformInfo.PlatformName);
|
||||||
|
@ -129,7 +129,7 @@ public void Start(string installationFolder, int processId)
|
|||||||
_diskTransferService.MirrorFolder(_appFolderInfo.GetUpdatePackageFolder(), installationFolder);
|
_diskTransferService.MirrorFolder(_appFolderInfo.GetUpdatePackageFolder(), installationFolder);
|
||||||
|
|
||||||
// Set executable flag on app and ffprobe
|
// Set executable flag on app and ffprobe
|
||||||
if (OsInfo.IsOsx || (OsInfo.IsLinux && PlatformInfo.IsNetCore))
|
if (OsInfo.IsOsx || OsInfo.IsLinux)
|
||||||
{
|
{
|
||||||
_diskProvider.SetFilePermissions(Path.Combine(installationFolder, "Radarr"), "755", null);
|
_diskProvider.SetFilePermissions(Path.Combine(installationFolder, "Radarr"), "755", null);
|
||||||
_diskProvider.SetFilePermissions(Path.Combine(installationFolder, "ffprobe"), "755", null);
|
_diskProvider.SetFilePermissions(Path.Combine(installationFolder, "ffprobe"), "755", null);
|
||||||
|
@ -70,7 +70,7 @@ public object GetStatus()
|
|||||||
AppData = _appFolderInfo.GetAppDataPath(),
|
AppData = _appFolderInfo.GetAppDataPath(),
|
||||||
OsName = _osInfo.Name,
|
OsName = _osInfo.Name,
|
||||||
OsVersion = _osInfo.Version,
|
OsVersion = _osInfo.Version,
|
||||||
IsNetCore = PlatformInfo.IsNetCore,
|
IsNetCore = true,
|
||||||
IsLinux = OsInfo.IsLinux,
|
IsLinux = OsInfo.IsLinux,
|
||||||
IsOsx = OsInfo.IsOsx,
|
IsOsx = OsInfo.IsOsx,
|
||||||
IsWindows = OsInfo.IsWindows,
|
IsWindows = OsInfo.IsWindows,
|
||||||
@ -83,7 +83,7 @@ public object GetStatus()
|
|||||||
MigrationVersion = _database.Migration,
|
MigrationVersion = _database.Migration,
|
||||||
UrlBase = _configFileProvider.UrlBase,
|
UrlBase = _configFileProvider.UrlBase,
|
||||||
RuntimeVersion = _platformInfo.Version,
|
RuntimeVersion = _platformInfo.Version,
|
||||||
RuntimeName = PlatformInfo.Platform,
|
RuntimeName = "netcore",
|
||||||
StartTime = _runtimeInfo.StartTime,
|
StartTime = _runtimeInfo.StartTime,
|
||||||
PackageVersion = _deploymentInfoProvider.PackageVersion,
|
PackageVersion = _deploymentInfoProvider.PackageVersion,
|
||||||
PackageAuthor = _deploymentInfoProvider.PackageAuthor,
|
PackageAuthor = _deploymentInfoProvider.PackageAuthor,
|
||||||
|
Loading…
Reference in New Issue
Block a user