mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
Move some methods into Utility that are handy
This commit is contained in:
@@ -101,6 +101,7 @@
|
||||
<None Include="packages.config" />
|
||||
<Compile Include="UpdateManager.DownloadReleases.cs" />
|
||||
<Compile Include="UpdateManager.ApplyReleases.cs" />
|
||||
<Compile Include="UpdateManager.InstallHelpers.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace Squirrel
|
||||
|
||||
bool shouldInitialize = false;
|
||||
try {
|
||||
localReleases = LoadLocalReleases(localReleaseFile);
|
||||
localReleases = Utility.LoadLocalReleases(localReleaseFile);
|
||||
} catch (Exception ex) {
|
||||
// Something has gone pear-shaped, let's start from scratch
|
||||
this.Log().WarnException("Failed to load local releases, starting from scratch", ex);
|
||||
@@ -106,17 +106,6 @@ namespace Squirrel
|
||||
return ret;
|
||||
}
|
||||
|
||||
public IEnumerable<ReleaseEntry> LoadLocalReleases(string localReleaseFile)
|
||||
{
|
||||
var file = File.OpenRead(localReleaseFile);
|
||||
|
||||
// NB: sr disposes file
|
||||
using (var sr = new StreamReader(file, Encoding.UTF8)) {
|
||||
return ReleaseEntry.ParseReleaseFile(sr.ReadToEnd());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async Task initializeClientAppDirectory()
|
||||
{
|
||||
// On bootstrap, we won't have any of our directories, create them
|
||||
@@ -141,8 +130,8 @@ namespace Squirrel
|
||||
if (localReleases.Count() == remoteReleases.Count()) {
|
||||
this.Log().Info("No updates, remote and local are the same");
|
||||
|
||||
var latestFullRelease = findCurrentVersion(remoteReleases);
|
||||
var currentRelease = findCurrentVersion(localReleases);
|
||||
var latestFullRelease = Utility.FindCurrentVersion(remoteReleases);
|
||||
var currentRelease = Utility.FindCurrentVersion(localReleases);
|
||||
|
||||
var info = UpdateInfo.Create(currentRelease, new[] {latestFullRelease}, packageDirectory, appFrameworkVersion);
|
||||
return info;
|
||||
@@ -155,27 +144,18 @@ namespace Squirrel
|
||||
if (!localReleases.Any()) {
|
||||
this.Log().Warn("First run or local directory is corrupt, starting from scratch");
|
||||
|
||||
var latestFullRelease = findCurrentVersion(remoteReleases);
|
||||
return UpdateInfo.Create(findCurrentVersion(localReleases), new[] {latestFullRelease}, packageDirectory, appFrameworkVersion);
|
||||
var latestFullRelease = Utility.FindCurrentVersion(remoteReleases);
|
||||
return UpdateInfo.Create(Utility.FindCurrentVersion(localReleases), new[] {latestFullRelease}, packageDirectory, appFrameworkVersion);
|
||||
}
|
||||
|
||||
if (localReleases.Max(x => x.Version) > remoteReleases.Max(x => x.Version)) {
|
||||
this.Log().Warn("hwhat, local version is greater than remote version");
|
||||
|
||||
var latestFullRelease = findCurrentVersion(remoteReleases);
|
||||
return UpdateInfo.Create(findCurrentVersion(localReleases), new[] {latestFullRelease}, packageDirectory, appFrameworkVersion);
|
||||
var latestFullRelease = Utility.FindCurrentVersion(remoteReleases);
|
||||
return UpdateInfo.Create(Utility.FindCurrentVersion(localReleases), new[] {latestFullRelease}, packageDirectory, appFrameworkVersion);
|
||||
}
|
||||
|
||||
return UpdateInfo.Create(findCurrentVersion(localReleases), remoteReleases, packageDirectory, appFrameworkVersion);
|
||||
}
|
||||
|
||||
static ReleaseEntry findCurrentVersion(IEnumerable<ReleaseEntry> localReleases)
|
||||
{
|
||||
if (!localReleases.Any()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return localReleases.MaxBy(x => x.Version).SingleOrDefault(x => !x.IsDelta);
|
||||
return UpdateInfo.Create(Utility.FindCurrentVersion(localReleases), remoteReleases, packageDirectory, appFrameworkVersion);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,6 +98,11 @@ namespace Squirrel
|
||||
.OpenSubKey(uninstallRegSubKey, true);
|
||||
key.DeleteSubKeyTree(applicationName);
|
||||
}
|
||||
|
||||
public void CreateShortcutsForExecutable(string exeName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -101,6 +101,12 @@ namespace Squirrel
|
||||
installHelpers.RemoveUninstallerRegistryEntry();
|
||||
}
|
||||
|
||||
public void CreateShortcutsForExecutable(string exeName)
|
||||
{
|
||||
var installHelpers = new InstallHelperImpl(applicationName, rootAppDirectory);
|
||||
installHelpers.CreateShortcutsForExecutable(exeName);
|
||||
}
|
||||
|
||||
public Version CurrentlyInstalledVersion(string executable = null)
|
||||
{
|
||||
executable = executable ??
|
||||
|
||||
@@ -293,6 +293,25 @@ namespace Squirrel
|
||||
return Path.Combine(PackageDirectoryForAppDir(rootAppDirectory), "RELEASES");
|
||||
}
|
||||
|
||||
public static IEnumerable<ReleaseEntry> LoadLocalReleases(string localReleaseFile)
|
||||
{
|
||||
var file = File.OpenRead(localReleaseFile);
|
||||
|
||||
// NB: sr disposes file
|
||||
using (var sr = new StreamReader(file, Encoding.UTF8)) {
|
||||
return ReleaseEntry.ParseReleaseFile(sr.ReadToEnd());
|
||||
}
|
||||
}
|
||||
|
||||
public static ReleaseEntry FindCurrentVersion(IEnumerable<ReleaseEntry> localReleases)
|
||||
{
|
||||
if (!localReleases.Any()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return localReleases.MaxBy(x => x.Version).SingleOrDefault(x => !x.IsDelta);
|
||||
}
|
||||
|
||||
static TAcc scan<T, TAcc>(this IEnumerable<T> This, TAcc initialValue, Func<TAcc, T, TAcc> accFunc)
|
||||
{
|
||||
TAcc acc = initialValue;
|
||||
|
||||
Reference in New Issue
Block a user