From 0c9ce49dbe7c002ec26e851f1cd4e5a8f7b67eea Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 20 Jan 2021 00:45:15 +0300 Subject: [PATCH] mkerge conflict resolve https://github.com/EpicMorg/atlassian-downloader/pull/17 --- src/DonloaderService.cs | 74 ++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/src/DonloaderService.cs b/src/DonloaderService.cs index 6b865ae..5166b3b 100644 --- a/src/DonloaderService.cs +++ b/src/DonloaderService.cs @@ -112,12 +112,12 @@ namespace EpicMorg.Atlassian.Downloader WriteColorLine("%║ .:cc;. %║"); WriteColorLine("%║ .;cccc;. %║"); WriteColorLine("%║ .;cccccc;. !╔══════════════════════════════════════════════╗ %║"); - WriteColorLine("%║ .:ccccccc;. !║ "+ assemblyName +" !║ %║"); + WriteColorLine("%║ .:ccccccc;. !║ " + assemblyName + " !║ %║"); WriteColorLine("%║ 'ccccccccc;. !╠══════════════════════════════════════════════╣ %║"); WriteColorLine("%║ ,cccccccccc;. !║ &Code: @kastkack !║ %║"); WriteColorLine("%║ ,ccccccccccc;. !║ &GFX: @stam !║ %║"); WriteColorLine("%║ .... .:ccccccccccc;. !╠══════════════════════════════════════════════╣ %║"); - WriteColorLine("%║ .',,'..;cccccccccccc;. !║ &Version: "+ assemblyVersion + " !║ %║"); + WriteColorLine("%║ .',,'..;cccccccccccc;. !║ &Version: " + assemblyVersion + " !║ %║"); WriteColorLine("%║ .,,,,,'.';cccccccccccc;. !║ &GitHub: $EpicMorg/atlassian-downloader !║ %║"); WriteColorLine("%║ .,;;;;;,'.':cccccccccccc;. !╚══════════════════════════════════════════════╝ %║"); WriteColorLine("%║ .;:;;;;;;,...:cccccccccccc;. %║"); @@ -148,7 +148,7 @@ namespace EpicMorg.Atlassian.Downloader Console.Out.WriteLine(json); break; case DownloadAction.Download: - await this.DownloadFilesFromFreed(feedUrl, versions, cancellationToken).ConfigureAwait(false); + await this.DownloadFilesFromFeed(feedUrl, versions, cancellationToken).ConfigureAwait(false); break; case DownloadAction.ListURLs: foreach (var versionProg in versions) @@ -172,7 +172,7 @@ namespace EpicMorg.Atlassian.Downloader } } logger.LogInformation($"Complete"); - + this.hostApplicationLifetime.StopApplication(); } @@ -180,12 +180,14 @@ namespace EpicMorg.Atlassian.Downloader { var atlassianJson = await client.GetStringAsync(feedUrl, cancellationToken).ConfigureAwait(false); var json = atlassianJson.Trim()["downloads(".Length..^1]; + logger.LogTrace("Downloaded json: {0}", json); var parsed = JsonSerializer.Deserialize(json, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + logger.LogDebug("Found {0} releases", parsed.Length); var versions = parsed.GroupBy(a => a.Version).ToDictionary(a => a.Key, a => a.ToArray()); - + logger.LogDebug("Found {0} releases", versions.Count); return (json, versions); } @@ -226,52 +228,56 @@ namespace EpicMorg.Atlassian.Downloader //https://raw.githubusercontent.com/EpicMorg/atlassian-json/master/json-backups/current/sourcetree.json "https://raw.githack.com/EpicMorg/atlassian-json/master/json-backups/current/sourcetree.json" - + }; - private void SetConsoleTitle() + private void SetConsoleTitle() { Console.Title = $@"{assemblyName} {assemblyVersion} {assemblyEnvironment} - {assemblyBuildType}"; } - private async Task DownloadFilesFromFreed(string feedUrl, IDictionary versions, CancellationToken cancellationToken) + private async Task DownloadFilesFromFeed(string feedUrl, IDictionary versions, CancellationToken cancellationToken) { - - var feedDir = Path.Combine(options.OutputDir, feedUrl[(feedUrl.LastIndexOf('/') + 1)..(feedUrl.LastIndexOf('.'))]); - logger.LogInformation($"Download from JSON \"{feedUrl}\" started"); - foreach (var version in versions) + + var feedDir = Path.Combine(options.OutputDir, feedUrl[(feedUrl.LastIndexOf('/') + 1)..(feedUrl.LastIndexOf('.'))]); + logger.LogInformation($"Download from JSON \"{feedUrl}\" started"); + foreach (var version in versions) + { + if (cancellationToken.IsCancellationRequested) + { + return; + } + + var directory = Path.Combine(feedDir, version.Key); + if (!Directory.Exists(directory)) + { + Directory.CreateDirectory(directory); + } + foreach (var file in version.Value) { if (cancellationToken.IsCancellationRequested) { return; } - - var directory = Path.Combine(feedDir, version.Key); - if (!Directory.Exists(directory)) + if (file.ZipUrl == null) { - Directory.CreateDirectory(directory); + logger.LogWarning($"Empty ZipUrl found for version '{version.Key}' in {feedUrl}"); + continue; } - foreach (var file in version.Value) + var serverPath = file.ZipUrl.PathAndQuery; + var outputFile = Path.Combine(directory, serverPath[(serverPath.LastIndexOf("/") + 1)..]); + if (!File.Exists(outputFile)) { - if (cancellationToken.IsCancellationRequested) - { - return; - } - if (file.ZipUrl == null) { continue; } - var serverPath = file.ZipUrl.PathAndQuery; - var outputFile = Path.Combine(directory, serverPath[(serverPath.LastIndexOf("/") + 1)..]); - if (!File.Exists(outputFile)) - { - await DownloadFile(file, outputFile, cancellationToken).ConfigureAwait(false); - } - else - { - logger.LogWarning($"File \"{outputFile}\" already exists. Download from \"{file.ZipUrl}\" skipped."); - } + await DownloadFile(file, outputFile, cancellationToken).ConfigureAwait(false); + } + else + { + logger.LogWarning($"File \"{outputFile}\" already exists. Download from \"{file.ZipUrl}\" skipped."); } } - logger.LogInformation($"All files from \"{feedUrl}\" successfully downloaded."); - + } + logger.LogInformation($"All files from \"{feedUrl}\" successfully downloaded."); + } private async Task DownloadFile(ResponseItem file, string outputFile, CancellationToken cancellationToken)