From 26bf4744b37140bacf2e7119873c4197b7abf376 Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Tue, 26 Aug 2014 15:42:22 -0700 Subject: [PATCH] Implement silent install --- src/Squirrel/IUpdateManager.cs | 3 ++- src/Squirrel/UpdateManager.ApplyReleases.cs | 4 ++-- src/Squirrel/UpdateManager.cs | 10 +++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) 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()