Replaced ServiceInstall.bat/ServiceUninstall.bat with exe files that automatically elevate user permissions.

This commit is contained in:
kay.one
2012-01-16 23:12:22 -08:00
parent 4da2e1cb72
commit 850880de47
22 changed files with 537 additions and 26 deletions
+7 -6
View File
@@ -56,6 +56,9 @@
<PropertyGroup>
<StartupObject>NzbDrone.AppMain</StartupObject>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<EmbedInteropTypes>True</EmbedInteropTypes>
@@ -94,13 +97,7 @@
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="ServiceInstall.bat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
<None Include="ServiceUninstall.bat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="NzbDrone.ico" />
@@ -138,6 +135,10 @@
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
+16 -2
View File
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using NLog;
using NzbDrone.Common;
@@ -15,17 +16,20 @@ namespace NzbDrone
private readonly ServiceProvider _serviceProvider;
private readonly ConsoleProvider _consoleProvider;
private readonly EnviromentProvider _enviromentProvider;
private readonly DiskProvider _diskProvider;
public Router(ApplicationServer applicationServer, ServiceProvider serviceProvider, ConsoleProvider consoleProvider, EnviromentProvider enviromentProvider)
public Router(ApplicationServer applicationServer, ServiceProvider serviceProvider, ConsoleProvider consoleProvider, EnviromentProvider enviromentProvider, DiskProvider diskProvider)
{
_applicationServer = applicationServer;
_serviceProvider = serviceProvider;
_consoleProvider = consoleProvider;
_enviromentProvider = enviromentProvider;
_diskProvider = diskProvider;
}
public void Route(IEnumerable<string> args)
{
Route(GetApplicationMode(args));
}
@@ -33,6 +37,15 @@ namespace NzbDrone
{
Logger.Info("Application mode: {0}", applicationMode);
var batFiles = _diskProvider.GetFiles(_enviromentProvider.ApplicationPath, SearchOption.TopDirectoryOnly)
.Where(c => c.EndsWith(".bat", StringComparison.InvariantCultureIgnoreCase)).ToList();
foreach (var batFile in batFiles)
{
if (new FileInfo(batFile).Name.StartsWith("service", StringComparison.InvariantCultureIgnoreCase))
_diskProvider.DeleteFile(batFile);
}
//TODO:move this outside, it should be one of application modes (ApplicationMode.Service?)
if (!_enviromentProvider.IsUserInteractive)
{
@@ -58,6 +71,7 @@ namespace NzbDrone
else
{
_serviceProvider.Install(ServiceProvider.NZBDRONE_SERVICE_NAME);
_serviceProvider.Start(ServiceProvider.NZBDRONE_SERVICE_NAME);
}
break;
}
@@ -71,7 +85,7 @@ namespace NzbDrone
{
_serviceProvider.UnInstall(ServiceProvider.NZBDRONE_SERVICE_NAME);
}
break;
}
default:
-4
View File
@@ -1,4 +0,0 @@
@ECHO OFF
nzbdrone.exe /i
net start nzbdrone
pause
-4
View File
@@ -1,4 +0,0 @@
@ECHO OFF
net stop nzbdrone
nzbdrone.exe /u
pause