From 42728e2694926dba5bed1642c52c7b79e6f527b0 Mon Sep 17 00:00:00 2001 From: flightlevel Date: Sat, 30 Jun 2018 22:49:11 +1000 Subject: [PATCH] Update installer so that it kills Jackett when uninstalling --- Installer.iss | 10 +++++----- src/Jackett.Common/Services/UpdateService.cs | 15 ++++++++------- src/Jackett.Updater/Program.cs | 10 +++++++++- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Installer.iss b/Installer.iss index 9ef1c7d06..7c61fc808 100644 --- a/Installer.iss +++ b/Installer.iss @@ -23,8 +23,8 @@ DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes OutputBaseFilename={#MyOutputFilename} -SetupIconFile=src\Jackett.Console\jackett.ico -UninstallDisplayIcon={commonappdata}\Jackett\JackettConsole.exe +SetupIconFile=src\Jackett.Tray\jackett.ico +UninstallDisplayIcon={commonappdata}\Jackett\{#MyAppExeName} VersionInfoVersion={#MyAppVersion} UninstallDisplayName={#MyAppName} Compression=lzma @@ -47,16 +47,16 @@ Name: "{group}\{#MyAppName}"; Filename: "{commonappdata}\Jackett\{#MyAppExeName} Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{commonappdata}\Jackett\{#MyAppExeName}"; Tasks: desktopicon -[Run] -Filename: "{commonappdata}\Jackett\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent - [Run] Filename: "{commonappdata}\Jackett\JackettConsole.exe"; Parameters: "--Uninstall"; Flags: waituntilterminated runhidden; Filename: "{commonappdata}\Jackett\JackettConsole.exe"; Parameters: "--ReserveUrls"; Flags: waituntilterminated runhidden; Filename: "{commonappdata}\Jackett\JackettConsole.exe"; Parameters: "--Install"; Flags: waituntilterminated runhidden; Tasks: windowsService Filename: "{commonappdata}\Jackett\JackettConsole.exe"; Parameters: "--Start"; Flags: waituntilterminated runhidden; Tasks: windowsService +Filename: "{commonappdata}\Jackett\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent [UninstallRun] Filename: "{commonappdata}\Jackett\JackettConsole.exe"; Parameters: "--Uninstall"; Flags: waituntilterminated skipifdoesntexist runhidden +Filename: "{sys}\taskkill.exe"; Parameters: "/f /im {#MyAppExeName}"; Flags: waituntilterminated skipifdoesntexist runhidden +Filename: "{sys}\taskkill.exe"; Parameters: "/f /im JackettConsole.exe"; Flags: waituntilterminated skipifdoesntexist runhidden diff --git a/src/Jackett.Common/Services/UpdateService.cs b/src/Jackett.Common/Services/UpdateService.cs index 2bde084e1..065ff2a24 100644 --- a/src/Jackett.Common/Services/UpdateService.cs +++ b/src/Jackett.Common/Services/UpdateService.cs @@ -324,20 +324,21 @@ namespace Jackett.Common.Services startInfo.Arguments += " --StartTray"; } - if (isWindows) - { - lockService.Signal(); - logger.Info("Signal sent to lock service"); - Thread.Sleep(2000); - } - logger.Info($"Starting updater: {startInfo.FileName} {startInfo.Arguments}"); var procInfo = Process.Start(startInfo); logger.Info($"Updater started process id: {procInfo.Id}"); if (!NoRestart) { + if (isWindows) + { + logger.Info("Signal sent to lock service"); + lockService.Signal(); + Thread.Sleep(2000); + } + logger.Info("Exiting Jackett.."); + //TODO: Remove once off Owin if (EnvironmentUtil.IsRunningLegacyOwin) { diff --git a/src/Jackett.Updater/Program.cs b/src/Jackett.Updater/Program.cs index 50a55527a..2b8283c89 100644 --- a/src/Jackett.Updater/Program.cs +++ b/src/Jackett.Updater/Program.cs @@ -306,7 +306,15 @@ namespace Jackett.Updater UseShellExecute = true }; - if (!isWindows) + if (isWindows) + { + //User didn't initiate the update from Windows service and wasn't running Jackett via the tray, must have started from the console + startInfo.Arguments = $"/K {startInfo.FileName} {startInfo.Arguments}"; + startInfo.FileName = "cmd.exe"; + startInfo.CreateNoWindow = false; + startInfo.WindowStyle = ProcessWindowStyle.Normal; + } + else { startInfo.Arguments = startInfo.FileName + " " + startInfo.Arguments; startInfo.FileName = "mono";