Run clean *after* apply, dummy

This commit is contained in:
Paul Betts
2014-08-08 14:51:38 +02:00
parent 2b72912ef2
commit bc771de4b3
2 changed files with 10 additions and 10 deletions

View File

@@ -150,7 +150,7 @@ namespace Squirrel
} }
} }
public static void BuildReleasesFile(string releasePackagesDir) public static List<ReleaseEntry> BuildReleasesFile(string releasePackagesDir)
{ {
var packagesDir = new DirectoryInfo(releasePackagesDir); var packagesDir = new DirectoryInfo(releasePackagesDir);
@@ -176,6 +176,7 @@ namespace Squirrel
} }
File.Move(tempFile, target); File.Move(tempFile, target);
return entries;
} }
static bool filenameIsDeltaFile(string filename) static bool filenameIsDeltaFile(string filename)

View File

@@ -29,16 +29,16 @@ namespace Squirrel
{ {
progress = progress ?? (_ => { }); progress = progress ?? (_ => { });
await cleanDeadVersions(updateInfo.CurrentlyInstalledVersion != null ? updateInfo.CurrentlyInstalledVersion.Version : null); var release = await createFullPackagesFromDeltas(updateInfo.ReleasesToApply, updateInfo.CurrentlyInstalledVersion);
progress(10); progress(10);
var release = await createFullPackagesFromDeltas(updateInfo.ReleasesToApply, updateInfo.CurrentlyInstalledVersion); await installPackageToAppDir(updateInfo, release);
progress(50); progress(50);
await installPackageToAppDir(updateInfo, release); var currentReleases = await updateLocalReleasesFile();
progress(95); progress(75);
await updateLocalReleasesFile(); await cleanDeadVersions(currentReleases.MaxBy(x => x.Version).First().Version);
progress(100); progress(100);
} }
@@ -47,7 +47,6 @@ namespace Squirrel
version = version ?? new Version(255, 255, 255, 255); version = version ?? new Version(255, 255, 255, 255);
this.Log().Info("Uninstalling version '{0}'", version); this.Log().Info("Uninstalling version '{0}'", version);
// find all the old releases (and this one) // find all the old releases (and this one)
var directoriesToDelete = getOldReleases(version) var directoriesToDelete = getOldReleases(version)
.Concat(new [] { getDirectoryForRelease(version) }) .Concat(new [] { getDirectoryForRelease(version) })
@@ -302,16 +301,16 @@ namespace Squirrel
await toCleanup.ForEachAsync(async x => { await toCleanup.ForEachAsync(async x => {
try { try {
await Utility.DeleteDirectory(x.FullName); await Utility.DeleteDirectoryWithFallbackToNextReboot(x.FullName);
} catch (UnauthorizedAccessException ex) { } catch (UnauthorizedAccessException ex) {
this.Log().WarnException("Couldn't delete directory: " + x.FullName, ex); this.Log().WarnException("Couldn't delete directory: " + x.FullName, ex);
} }
}); });
} }
internal async Task updateLocalReleasesFile() internal async Task<List<ReleaseEntry>> updateLocalReleasesFile()
{ {
await Task.Run(() => ReleaseEntry.BuildReleasesFile(Utility.PackageDirectoryForAppDir(rootAppDirectory))); return await Task.Run(() => ReleaseEntry.BuildReleasesFile(Utility.PackageDirectoryForAppDir(rootAppDirectory)));
} }
IEnumerable<DirectoryInfo> getReleases() IEnumerable<DirectoryInfo> getReleases()