Implement post-install for install + update

This commit is contained in:
Paul Betts
2014-08-19 12:55:15 -07:00
parent b384f4bdb1
commit 6d88828d5e

View File

@@ -33,12 +33,16 @@ namespace Squirrel
progress(10);
await installPackageToAppDir(updateInfo, release);
progress(50);
progress(30);
var currentReleases = await updateLocalReleasesFile();
progress(50);
var newVersion = currentReleases.MaxBy(x => x.Version).First().Version;
await invokePostInstall(newVersion, currentReleases.Count == 1);
progress(75);
await cleanDeadVersions(currentReleases.MaxBy(x => x.Version).First().Version);
await cleanDeadVersions(newVersion);
progress(100);
}
@@ -182,6 +186,17 @@ namespace Squirrel
}
}
async Task invokePostInstall(Version currentVersion, bool isInitialInstall)
{
var targetDir = getDirectoryForRelease(currentVersion);
var args = isInitialInstall ?
String.Format("/squirrel-install {0}", currentVersion) :
String.Format("/squirrel-updated {0}", currentVersion);
await SquirrelAwareExecutableDetector.GetAllSquirrelAwareApps(targetDir.FullName)
.ForEachAsync(exe => Utility.InvokeProcessAsync(exe, args), 1);
}
void fixPinnedExecutables(Version newCurrentVersion)
{
if (Environment.OSVersion.Version < new Version(6, 1)) {