diff --git a/src/Squirrel/IUpdateManager.cs b/src/Squirrel/IUpdateManager.cs index 9f580cee..6b38ed49 100644 --- a/src/Squirrel/IUpdateManager.cs +++ b/src/Squirrel/IUpdateManager.cs @@ -47,8 +47,9 @@ namespace Squirrel /// /// Completely Installs a targeted app /// + /// If true, don't run the app once install completes. /// Completion - Task FullInstall(); + Task FullInstall(bool silentInstall); /// /// Completely uninstalls the targeted app diff --git a/src/Squirrel/UpdateManager.ApplyReleases.cs b/src/Squirrel/UpdateManager.ApplyReleases.cs index fc4e8f61..a813bb8c 100644 --- a/src/Squirrel/UpdateManager.ApplyReleases.cs +++ b/src/Squirrel/UpdateManager.ApplyReleases.cs @@ -26,7 +26,7 @@ namespace Squirrel this.rootAppDirectory = rootAppDirectory; } - public async Task ApplyReleases(UpdateInfo updateInfo, Action progress = null) + public async Task ApplyReleases(UpdateInfo updateInfo, bool silentInstall, Action progress = null) { progress = progress ?? (_ => { }); @@ -40,7 +40,7 @@ namespace Squirrel progress(50); var newVersion = currentReleases.MaxBy(x => x.Version).First().Version; - await invokePostInstall(newVersion, currentReleases.Count == 1); + await invokePostInstall(newVersion, currentReleases.Count == 1 && !silentInstall); progress(75); await cleanDeadVersions(newVersion); diff --git a/src/Squirrel/UpdateManager.cs b/src/Squirrel/UpdateManager.cs index a83e3aa2..ceb85b18 100644 --- a/src/Squirrel/UpdateManager.cs +++ b/src/Squirrel/UpdateManager.cs @@ -62,14 +62,18 @@ namespace Squirrel var applyReleases = new ApplyReleasesImpl(rootAppDirectory); await acquireUpdateLock(); - await applyReleases.ApplyReleases(updateInfo, progress); + await applyReleases.ApplyReleases(updateInfo, false, progress); } - public async Task FullInstall() + public async Task FullInstall(bool silentInstall = false) { var updateInfo = await CheckForUpdate(); await DownloadReleases(updateInfo.ReleasesToApply); - await ApplyReleases(updateInfo); + + var applyReleases = new ApplyReleasesImpl(rootAppDirectory); + await acquireUpdateLock(); + + await applyReleases.ApplyReleases(updateInfo, silentInstall); } public async Task FullUninstall()