Beispiel #1
0
        public AppUpdater(IHostApplicationLifetime applicationLifetime, IOptions <PrintSpoolerOptions> options, ILogger <AppUpdater> logger)
        {
            _applicationLifetime = applicationLifetime;
            _options             = options.Value;
            _logger = logger;

            IPackageResolver resolver;

            if (_options.LocalPackageRepository is object)
            {
                resolver = new LocalPackageResolver(_options.LocalPackageRepository);
            }
            else
            {
                resolver = new GithubPackageResolver("rmja", "Cloudspool", "PrintSpooler-win64.zip");
            }

            var entryAssembly = AssemblyMetadata.FromEntryAssembly();

            var updateeName = _options.UpdateeName ?? entryAssembly.Name;
            var updatee     = new AssemblyMetadata(updateeName, entryAssembly.Version, entryAssembly.FilePath);

            _um = new UpdateManager(
                updatee,
                resolver,
                new ZipPackageExtractor());
        }
    private async Task DownloadReloadedAsync(string downloadLocation, IProgress <double> downloadProgress)
    {
        CurrentStepDescription = "Downloading Reloaded II";
        var resolver = new GithubPackageResolver("Reloaded-Project", "Reloaded-II", "Release.zip");
        var versions = await resolver.GetPackageVersionsAsync();

        var latestVersion = versions.First();
        await resolver.DownloadPackageAsync(latestVersion, downloadLocation, downloadProgress, CancellationToken.Token);

        if (!File.Exists(downloadLocation))
        {
            throw new Exception($"Reloaded failed to download (no file was written to disk).");
        }
    }
Beispiel #3
0
        public async Task GithubPackageResolver_DownloadAsync_Test()
        {
            // Arrange
            var version         = Version.Parse("2.0");
            var expectedContent = "Hello world";

            // Act
            var resolver     = new GithubPackageResolver("Tyrrrz", "OnovaTestRepo", "*.onv");
            var destFilePath = Path.Combine(TempDirPath, "Output.onv");
            await resolver.DownloadAsync(version, destFilePath);

            // Assert
            Assert.That(File.Exists(destFilePath));
            Assert.That(File.ReadAllText(destFilePath), Is.EqualTo(expectedContent));
        }
Beispiel #4
0
        public async Task GithubPackageResolver_GetAllVersionsAsync_Test()
        {
            // This uses a stub repository (github.com/Tyrrrz/OnovaTestRepo)

            // Arrange
            var expectedVersions = new[] { Version.Parse("1.0"), Version.Parse("2.0"), Version.Parse("3.0") };

            // Act
            var resolver = new GithubPackageResolver("Tyrrrz", "OnovaTestRepo", "Test.onv");
            var versions = await resolver.GetAllVersionsAsync();

            // Assert
            Assert.That(versions, Is.Not.Null);
            Assert.That(versions, Is.EquivalentTo(expectedVersions));
        }
Beispiel #5
0
        public async Task GithubPackageResolver_GetPackageAsync_Test()
        {
            // This uses a stub repository (github.com/Tyrrrz/OnovaTestRepo)

            // Arrange
            const string expectedContent = "Hello world";

            // Act
            var resolver = new GithubPackageResolver("Tyrrrz", "OnovaTestRepo", "Test.onv");
            var stream   = await resolver.GetPackageAsync(Version.Parse("2.0"));

            // Assert
            Assert.That(stream, Is.Not.Null);

            using (stream)
                using (var reader = new StreamReader(stream))
                {
                    var content = await reader.ReadToEndAsync();

                    Assert.That(content, Is.EqualTo(expectedContent));
                }
        }
Beispiel #6
0
 public UpdateManager(string repoOwner, string repoName, string assetNamePattern)
 {
     PackageResolver = new GithubPackageResolver(repoOwner, repoName, assetNamePattern);
 }