Skip to content

Commit

Permalink
core 3.1 port Squirrel#2
Browse files Browse the repository at this point in the history
  • Loading branch information
dmucka committed Jul 27, 2020
1 parent 6f2070e commit 719f563
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 68 deletions.
4 changes: 0 additions & 4 deletions src/Squirrel.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@
<iconUrl>https://github.com/raw/Squirrel/Squirrel.Windows/master/docs/artwork/Squirrel-Logo-Square.png</iconUrl>

<dependencies>
<dependency id="DeltaCompressionDotNet" version="[1.1,2.0)" />
<dependency id="Mono.Cecil" version="0.10.4" />
<dependency id="SharpCompress" version="[0.23.0]" />
<dependency id="Nuget.Core" version="[2.14.0]" />
</dependencies>

<id>squirrel.windows</id>
Expand Down
18 changes: 1 addition & 17 deletions src/Squirrel/Squirrel.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,13 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="NuGet.Core" Version="2.14.0" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Microsoft.Web.Xdt" Version="3.1.0" />
<PackageReference Include="Microsoft.Win32.Registry" Version="4.7.0" />
<PackageReference Include="Mono.Cecil" Version="0.10.4" />
<PackageReference Include="SharpCompress" Version="0.25.1" />
<PackageReference Include="System.Drawing.Common" Version="4.7.0" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="DeltaCompressionDotNet" Version="1.1.0.0" />
<PackageReference Include="Microsoft.Web.Xdt" Version="2.1.1" />
<PackageReference Include="Mono.Cecil" Version="0.9.6.1" />
<PackageReference Include="SharpCompress" Version="0.17.1.0" />
</ItemGroup>

<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Web" />
</ItemGroup>

<ItemGroup>
<PackageReference Update="Nerdbank.GitVersioning" Version="3.0.50" />
</ItemGroup>

Expand Down
44 changes: 2 additions & 42 deletions src/Squirrel/UpdateManager.ApplyReleases.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ public ApplyReleasesImpl(string rootAppDirectory)

public async Task<string> ApplyReleases(UpdateInfo updateInfo, bool silentInstall, bool attemptingFullInstall, Action<int> progress = null)
{
progress = progress ?? (_ => { });
progress ??= (_ => { });

progress(0);
var release = await createFullPackagesFromDeltas(updateInfo.ReleasesToApply, updateInfo.CurrentlyInstalledVersion);
var release = updateInfo.ReleasesToApply.MaxBy(x => x.Version).FirstOrDefault();
progress(10);

if (release == null) {
Expand Down Expand Up @@ -303,46 +303,6 @@ await ReleasePackage.ExtractZipForInstall(
});
}

async Task<ReleaseEntry> createFullPackagesFromDeltas(IEnumerable<ReleaseEntry> releasesToApply, ReleaseEntry currentVersion)
{
Contract.Requires(releasesToApply != null);

// If there are no remote releases at all, bail
if (!releasesToApply.Any()) {
return null;
}

// If there are no deltas in our list, we're already done
if (releasesToApply.All(x => !x.IsDelta)) {
return releasesToApply.MaxBy(x => x.Version).FirstOrDefault();
}

if (!releasesToApply.All(x => x.IsDelta)) {
throw new Exception("Cannot apply combinations of delta and full packages");
}

// Smash together our base full package and the nearest delta
var ret = await Task.Run(() => {
var basePkg = new ReleasePackage(Path.Combine(rootAppDirectory, "packages", currentVersion.Filename));
var deltaPkg = new ReleasePackage(Path.Combine(rootAppDirectory, "packages", releasesToApply.First().Filename));
var deltaBuilder = new DeltaPackageBuilder(Directory.GetParent(this.rootAppDirectory).FullName);
return deltaBuilder.ApplyDeltaPackage(basePkg, deltaPkg,
Regex.Replace(deltaPkg.InputPackageFile, @"-delta.nupkg$", ".nupkg", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant));
});

if (releasesToApply.Count() == 1) {
return ReleaseEntry.GenerateFromFile(ret.InputPackageFile);
}

var fi = new FileInfo(ret.InputPackageFile);
var entry = ReleaseEntry.GenerateFromFile(fi.OpenRead(), fi.Name);

// Recursively combine the rest of them
return await createFullPackagesFromDeltas(releasesToApply.Skip(1), entry);
}

void executeSelfUpdate(SemanticVersion currentVersion)
{
var targetDir = getDirectoryForRelease(currentVersion);
Expand Down
4 changes: 2 additions & 2 deletions src/SyncReleases/SyncImplementations.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ public static async Task SyncFromGitHub(string repoUrl, string token, DirectoryI
}

var nwo = nwoFromRepoUrl(repoUrl);
var releases = (await client.Release.GetAll(nwo.Item1, nwo.Item2))
var releases = (await client.Repository.Release.GetAll(nwo.Item1, nwo.Item2))
.OrderByDescending(x => x.PublishedAt)
.Take(5);

await releases.ForEachAsync(async release => {
// NB: Why do I have to double-fetch the release assets? It's already in GetAll
var assets = await client.Release.GetAllAssets(nwo.Item1, nwo.Item2, release.Id);
var assets = await client.Repository.Release.GetAllAssets(nwo.Item1, nwo.Item2, release.Id);
await assets
.Where(x => x.Name.EndsWith(".nupkg", StringComparison.OrdinalIgnoreCase))
Expand Down
4 changes: 2 additions & 2 deletions src/SyncReleases/SyncReleases.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\vendor\nuget\src\Core\Core.csproj" />
<ProjectReference Include="..\Squirrel\Squirrel.csproj" />
</ItemGroup>

Expand All @@ -23,7 +22,8 @@
</ItemGroup>

<ItemGroup>
<PackageReference Update="Nerdbank.GitVersioning" Version="3.0.50" />
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="1.1.0-beta-20204-02" />
<PackageReference Update="Nerdbank.GitVersioning" Version="3.2.31" />
</ItemGroup>

<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
Expand Down
3 changes: 2 additions & 1 deletion src/Update/Update.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,12 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\vendor\nuget\src\Core\Core.csproj" />
<ProjectReference Include="..\Squirrel\Squirrel.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="NuGet.Core" Version="2.14.0" />
<PackageReference Include="WpfAnimatedGif" Version="1.4.15.0" />
</ItemGroup>

Expand Down

0 comments on commit 719f563

Please sign in to comment.