diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-10-07 12:22:19 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-10-07 12:22:19 -0400 |
| commit | 4a030a70a95a51af22f8915801f28614d638714e (patch) | |
| tree | 18451543f49dd642211fa604404d55dac76e7a1f | |
| parent | 65f78ea5ad19620d73eba54ac289fb78ef70af2b (diff) | |
remove self update capability from service
| -rw-r--r-- | MediaBrowser.Model/System/SystemInfo.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Mono.userprefs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Server.Mono/Native/NativeApp.cs | 26 | ||||
| -rw-r--r-- | MediaBrowser.Server.Mono/Program.cs | 24 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/ApplicationHost.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/MainStartup.cs | 42 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/Native/NativeApp.cs | 12 |
7 files changed, 96 insertions, 26 deletions
diff --git a/MediaBrowser.Model/System/SystemInfo.cs b/MediaBrowser.Model/System/SystemInfo.cs index d736298b8f..9491139dbc 100644 --- a/MediaBrowser.Model/System/SystemInfo.cs +++ b/MediaBrowser.Model/System/SystemInfo.cs @@ -67,7 +67,13 @@ namespace MediaBrowser.Model.System /// </summary> /// <value><c>true</c> if this instance can self restart; otherwise, <c>false</c>.</value> public bool CanSelfRestart { get; set; } - + + /// <summary> + /// Gets or sets a value indicating whether this instance can self update. + /// </summary> + /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value> + public bool CanSelfUpdate { get; set; } + /// <summary> /// Gets or sets plugin assemblies that failed to load. /// </summary> diff --git a/MediaBrowser.Mono.userprefs b/MediaBrowser.Mono.userprefs index a4119f6271..f07c9fbcf0 100644 --- a/MediaBrowser.Mono.userprefs +++ b/MediaBrowser.Mono.userprefs @@ -1,10 +1,13 @@ <Properties> <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|x86" /> - <MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Server.Mono\Networking\NetworkManager.cs"> + <MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.ServerApplication\ApplicationHost.cs"> <Files> <File FileName="MediaBrowser.Server.Implementations\HttpServer\HttpServer.cs" Line="1" Column="1" /> <File FileName="MediaBrowser.Server.Mono\FFMpeg\FFMpegDownloader.cs" Line="1" Column="1" /> <File FileName="MediaBrowser.Server.Mono\Networking\NetworkManager.cs" Line="28" Column="9" /> + <File FileName="MediaBrowser.ServerApplication\ApplicationHost.cs" Line="525" Column="50" /> + <File FileName="MediaBrowser.Server.Mono\Native\NativeApp.cs" Line="24" Column="4" /> + <File FileName="MediaBrowser.Server.Mono\Program.cs" Line="105" Column="17" /> </Files> </MonoDevelop.Ide.Workbench> <MonoDevelop.Ide.DebuggingService.Breakpoints> diff --git a/MediaBrowser.Server.Mono/Native/NativeApp.cs b/MediaBrowser.Server.Mono/Native/NativeApp.cs index 4cc2dcebf3..b8c4447e5f 100644 --- a/MediaBrowser.Server.Mono/Native/NativeApp.cs +++ b/MediaBrowser.Server.Mono/Native/NativeApp.cs @@ -21,6 +21,30 @@ namespace MediaBrowser.ServerApplication.Native public static void Restart() { MainClass.Restart (); - } + } + + /// <summary> + /// Determines whether this instance [can self restart]. + /// </summary> + /// <returns><c>true</c> if this instance [can self restart]; otherwise, <c>false</c>.</returns> + public static bool CanSelfRestart + { + get + { + return MainClass.CanSelfRestart; + } + } + + /// <summary> + /// Gets a value indicating whether this instance can self update. + /// </summary> + /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value> + public static bool CanSelfUpdate + { + get + { + return MainClass.CanSelfUpdate; + } + } } } diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs index 2e86afad70..fddf9706d0 100644 --- a/MediaBrowser.Server.Mono/Program.cs +++ b/MediaBrowser.Server.Mono/Program.cs @@ -82,6 +82,30 @@ namespace MediaBrowser.Server.Mono return new ServerApplicationPaths(); } + /// <summary> + /// Determines whether this instance [can self restart]. + /// </summary> + /// <returns><c>true</c> if this instance [can self restart]; otherwise, <c>false</c>.</returns> + public static bool CanSelfRestart + { + get + { + return false; + } + } + + /// <summary> + /// Gets a value indicating whether this instance can self update. + /// </summary> + /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value> + public static bool CanSelfUpdate + { + get + { + return false; + } + } + private static void RunApplication(ServerApplicationPaths appPaths, ILogManager logManager) { // TODO: Show splash here diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index b74fd8a739..ed9179b076 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -530,7 +530,7 @@ namespace MediaBrowser.ServerApplication #if DEBUG return false; #endif - return true; + return NativeApp.CanSelfUpdate; } } @@ -603,7 +603,8 @@ namespace MediaBrowser.ServerApplication MacAddress = GetMacAddress(), HttpServerPortNumber = ServerConfigurationManager.Configuration.HttpServerPortNumber, OperatingSystem = Environment.OSVersion.ToString(), - CanSelfRestart = CanSelfRestart + CanSelfRestart = CanSelfRestart, + CanSelfUpdate = CanSelfUpdate }; } diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index b4b2cf1071..f61b0f1d13 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -114,7 +114,7 @@ namespace MediaBrowser.ServerApplication /// <returns><c>true</c> if [is already running] [the specified current process]; otherwise, <c>false</c>.</returns> private static bool IsAlreadyRunning(Process currentProcess) { - var runningPath = Process.GetCurrentProcess().MainModule.FileName; + var runningPath = currentProcess.MainModule.FileName; var duplicate = Process.GetProcesses().FirstOrDefault(i => { @@ -151,13 +151,11 @@ namespace MediaBrowser.ServerApplication { if (runAsService) { -#if (RELEASE) var systemPath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); var programDataPath = Path.GetDirectoryName(systemPath); return new ServerApplicationPaths(programDataPath); -#endif } return new ServerApplicationPaths(); @@ -171,7 +169,19 @@ namespace MediaBrowser.ServerApplication { get { - return true; + return !_isRunningAsService; + } + } + + /// <summary> + /// Gets a value indicating whether this instance can self update. + /// </summary> + /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value> + public static bool CanSelfUpdate + { + get + { + return !_isRunningAsService; } } @@ -188,6 +198,9 @@ namespace MediaBrowser.ServerApplication logger.Info("Server: {0}", Environment.MachineName); logger.Info("Operating system: {0}", Environment.OSVersion.ToString()); logger.Info("Program data path: {0}", appPaths.ProgramDataPath); + + var runningPath = Process.GetCurrentProcess().MainModule.FileName; + logger.Info("Executable: {0}", runningPath); } /// <summary> @@ -276,11 +289,6 @@ namespace MediaBrowser.ServerApplication { ManagedInstallerClass.InstallHelper(new[] { runningPath }); - using (var process = Process.Start("cmd.exe", "/c sc failure " + BackgroundService.Name + " reset= 0 actions= restart/1000/restart/1000/restart/60000")) - { - process.WaitForExit(); - } - logger.Info("Service installation succeeded"); } catch (Exception ex) @@ -458,19 +466,11 @@ namespace MediaBrowser.ServerApplication if (!_isRunningAsService) { - _logger.Info("Starting server application"); - RestartWindowsApplication(); - } - else - { - _logger.Info("Calling Enviornment.Exit to tell Windows to restart the server."); - Environment.Exit(1); - } - } + _logger.Info("Executing windows forms restart"); + System.Windows.Forms.Application.Restart(); - private static void RestartWindowsApplication() - { - System.Windows.Forms.Application.Restart(); + ShutdownWindowsApplication(); + } } private static void ShutdownWindowsApplication() diff --git a/MediaBrowser.ServerApplication/Native/NativeApp.cs b/MediaBrowser.ServerApplication/Native/NativeApp.cs index 0e114b166d..c0d3e876a5 100644 --- a/MediaBrowser.ServerApplication/Native/NativeApp.cs +++ b/MediaBrowser.ServerApplication/Native/NativeApp.cs @@ -33,5 +33,17 @@ namespace MediaBrowser.ServerApplication.Native return MainStartup.CanSelfRestart; } } + + /// <summary> + /// Gets a value indicating whether this instance can self update. + /// </summary> + /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value> + public static bool CanSelfUpdate + { + get + { + return MainStartup.CanSelfUpdate; + } + } } } |
