diff --git a/NzbDrone.Common/ConfigFileProvider.cs b/NzbDrone.Common/ConfigFileProvider.cs
index 495c57ce6..e82df3874 100644
--- a/NzbDrone.Common/ConfigFileProvider.cs
+++ b/NzbDrone.Common/ConfigFileProvider.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Xml.Linq;
using System.Xml.XPath;
using NLog;
+using Ninject;
using NzbDrone.Common.Model;
namespace NzbDrone.Common
@@ -14,6 +15,8 @@ namespace NzbDrone.Common
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
private readonly string _configFile;
+
+ [Inject]
public ConfigFileProvider(EnviromentProvider enviromentProvider)
{
_enviromentProvider = enviromentProvider;
@@ -22,6 +25,11 @@ namespace NzbDrone.Common
CreateDefaultConfigFile();
}
+ public ConfigFileProvider()
+ {
+
+ }
+
public virtual Guid Guid
{
get
diff --git a/NzbDrone.Common/LogConfiguration.cs b/NzbDrone.Common/LogConfiguration.cs
index 7d7ede948..a5e32f16f 100644
--- a/NzbDrone.Common/LogConfiguration.cs
+++ b/NzbDrone.Common/LogConfiguration.cs
@@ -68,7 +68,6 @@ namespace NzbDrone.Common
if (LogManager.ThrowExceptions)
throw;
}
-
}
public static void RegisterExceptioneer()
diff --git a/NzbDrone.Common/NzbDrone.Common.csproj b/NzbDrone.Common/NzbDrone.Common.csproj
index b7461ac7b..a33eee862 100644
--- a/NzbDrone.Common/NzbDrone.Common.csproj
+++ b/NzbDrone.Common/NzbDrone.Common.csproj
@@ -30,11 +30,15 @@
TRACE
prompt
4
+ x86
..\Libraries\Exceptioneer.WindowsFormsClient.dll
+
+ ..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll
+
..\packages\NLog.2.0.0.2000\lib\net40\NLog.dll
diff --git a/NzbDrone.Core.Test/ProviderTests/UpdateProviderTests/PreformUpdateFixture.cs b/NzbDrone.Core.Test/ProviderTests/UpdateProviderTests/PreformUpdateFixture.cs
index fdf863b3c..bdb668443 100644
--- a/NzbDrone.Core.Test/ProviderTests/UpdateProviderTests/PreformUpdateFixture.cs
+++ b/NzbDrone.Core.Test/ProviderTests/UpdateProviderTests/PreformUpdateFixture.cs
@@ -18,6 +18,8 @@ namespace NzbDrone.Core.Test.ProviderTests.UpdateProviderTests
{
private const string SANDBOX_FOLDER = @"C:\Temp\nzbdrone_update\";
+ private readonly Guid _clientGuid = Guid.NewGuid();
+
private readonly UpdatePackage updatePackage = new UpdatePackage
{
FileName = "NzbDrone.kay.one.0.6.0.2031.zip",
@@ -29,6 +31,7 @@ namespace NzbDrone.Core.Test.ProviderTests.UpdateProviderTests
public void Setup()
{
Mocker.GetMock().SetupGet(c => c.SystemTemp).Returns(@"C:\Temp\");
+ Mocker.GetMock().SetupGet(c => c.Guid).Returns(_clientGuid);
}
@@ -65,15 +68,18 @@ namespace NzbDrone.Core.Test.ProviderTests.UpdateProviderTests
//Setup
var updateClientPath = Mocker.GetMock().Object.GetUpdateClientExePath();
+ Mocker.GetMock()
+ .SetupGet(c => c.NzbDroneProcessIdFromEnviroment).Returns(12);
+
//Act
Mocker.Resolve().StartUpgrade(updatePackage);
//Assert
Mocker.GetMock().Verify(
- c => c.Start(It.Is(p =>
+ c => c.Start(It.Is(p =>
p.FileName == updateClientPath &&
- p.Arguments == "/12 /"
- )));
+ p.Arguments == "/12 /" + _clientGuid.ToString())
+ ));
}
[Test]
diff --git a/NzbDrone.Core/Providers/UpdateProvider.cs b/NzbDrone.Core/Providers/UpdateProvider.cs
index e9863b636..0af33a383 100644
--- a/NzbDrone.Core/Providers/UpdateProvider.cs
+++ b/NzbDrone.Core/Providers/UpdateProvider.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
@@ -16,8 +17,10 @@ namespace NzbDrone.Core.Providers
{
private readonly HttpProvider _httpProvider;
private readonly ConfigProvider _configProvider;
+ private readonly ConfigFileProvider _configFileProvider;
private readonly EnviromentProvider _enviromentProvider;
private readonly ArchiveProvider _archiveProvider;
+ private readonly ProcessProvider _processProvider;
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
private static readonly Regex parseRegex = new Regex(@"(?:\>)(?NzbDrone.+?(?\d+\.\d+\.\d+\.\d+).+?)(?:\<\/A\>)", RegexOptions.IgnoreCase);
@@ -25,13 +28,15 @@ namespace NzbDrone.Core.Providers
[Inject]
- public UpdateProvider(HttpProvider httpProvider, ConfigProvider configProvider,
- EnviromentProvider enviromentProvider, ArchiveProvider archiveProvider)
+ public UpdateProvider(HttpProvider httpProvider, ConfigProvider configProvider, ConfigFileProvider configFileProvider,
+ EnviromentProvider enviromentProvider, ArchiveProvider archiveProvider, ProcessProvider processProvider)
{
_httpProvider = httpProvider;
_configProvider = configProvider;
+ _configFileProvider = configFileProvider;
_enviromentProvider = enviromentProvider;
_archiveProvider = archiveProvider;
+ _processProvider = processProvider;
}
public UpdateProvider()
@@ -82,6 +87,17 @@ namespace NzbDrone.Core.Providers
logger.Info("Extracting Update package");
_archiveProvider.ExtractArchive(packageDestination, _enviromentProvider.GetUpdateSandboxFolder());
logger.Info("Update package extracted successfully");
+
+ logger.Info("Starting update client");
+
+ var startInfo = new ProcessStartInfo()
+ {
+ FileName = _enviromentProvider.GetUpdateClientExePath(),
+ Arguments = string.Format("/{0} /{1}", _enviromentProvider.NzbDroneProcessIdFromEnviroment, _configFileProvider.Guid)
+ };
+
+ _processProvider.Start(startInfo);
+
}
}
diff --git a/NzbDrone.Update.Test/NzbDrone.Update.Test.csproj b/NzbDrone.Update.Test/NzbDrone.Update.Test.csproj
index 8b40d13af..8484b9288 100644
--- a/NzbDrone.Update.Test/NzbDrone.Update.Test.csproj
+++ b/NzbDrone.Update.Test/NzbDrone.Update.Test.csproj
@@ -48,7 +48,9 @@
..\packages\Moq.4.0.10827\lib\NET40\Moq.dll
-
+
+ ..\packages\NLog.2.0.0.2000\lib\net40\NLog.dll
+
..\packages\NUnit.2.5.10.11092\lib\nunit.framework.dll
diff --git a/NzbDrone.Update/NzbDrone.Update.csproj b/NzbDrone.Update/NzbDrone.Update.csproj
index 1310f2da8..1212ac035 100644
--- a/NzbDrone.Update/NzbDrone.Update.csproj
+++ b/NzbDrone.Update/NzbDrone.Update.csproj
@@ -11,7 +11,8 @@
NzbDrone.Update
NzbDrone.Update
v4.0
- Client
+
+
512
@@ -49,6 +50,7 @@
+
diff --git a/NzbDrone.Update/app.config b/NzbDrone.Update/app.config
new file mode 100644
index 000000000..e36560333
--- /dev/null
+++ b/NzbDrone.Update/app.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/package.bat b/package.bat
index bf4355f5f..5322f9fed 100644
--- a/package.bat
+++ b/package.bat
@@ -4,10 +4,12 @@ SET TARGET=%PACKAGEROOT%\NzbDrone
rd %TARGET% /S /Q
del nzbdrone*.zip /Q /F
+
+
xcopy IISExpress %TARGET%\IISExpress /E /V /I /Y
xcopy NzbDrone\bin\Release\*.* %TARGET%\ /E /V /I /Y
-
+xcopy NzbDrone.Update\bin\Release\*.* %TARGET%\NzbDrone.Update\ /E /V /I /Y
xcopy NzbDrone.Web\bin\*.* %TARGET%\NzbDrone.Web\bin\ /E /V /I /Y
xcopy NzbDrone.Web\App_GlobalResources\*.* %TARGET%\NzbDrone.Web\App_GlobalResources\ /E /V /I /Y
@@ -15,7 +17,8 @@ xcopy NzbDrone.Web\Content\*.* %TARGET%\NzbDrone.Web\Content\ /E /V /I /Y
xcopy NzbDrone.Web\Scripts\*.* %TARGET%\NzbDrone.Web\Scripts\ /E /V /I /Y
xcopy NzbDrone.Web\Views\*.* %TARGET%\NzbDrone.Web\Views\ /E /V /I /Y
-del %TARGET%\NzbDrone.Web\bin\*.xml /q
+del %TARGET%\NzbDrone.Web\bin\*.xml /Q /F
+
xcopy NzbDrone.Web\log.config %TARGET%\NzbDrone.Web\
@@ -27,6 +30,8 @@ xcopy NzbDrone.Web\web.config %TARGET%\NzbDrone.Web\
CD %PACKAGEROOT%
del nlog.xml /Q /F /S
+del nlog.pdb /Q /F /S
+del Twitterizer2.pdb /Q /F /S
del *.vshost.exe.* /Q /F /S
del ninject*.pdb /Q /F /S
del ninject*.xml /Q /F /S