From 1bceef56567bd50fc8285de3e2f75ecbe9d12cbd Mon Sep 17 00:00:00 2001 From: Schwirg László Date: Tue, 13 May 2025 10:54:09 +0200 Subject: [PATCH] v1.34.1 --- Vrh.Log4Pro.MaintenanceConsole/Manager - BackupPackageManager.cs | 55 ++++++++++++++++++++++++++++++++++++++----------------- Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs | 4 ++-- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - BackupPackageManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - BackupPackageManager.cs index 425d4b1..4f56f18 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - BackupPackageManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - BackupPackageManager.cs @@ -23,6 +23,7 @@ using VRH.Common; using System.Xml.Linq; using System.Text.RegularExpressions; using System.Security.Cryptography; +using System.Numerics; namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS { @@ -75,49 +76,69 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS ColorConsole.WriteLine(); - var folder1Files = GetFilesWithRelativePaths(rootWORKING, searchpatterncsvlist); + var folderWFiles = GetFilesWithRelativePaths(rootWORKING, searchpatterncsvlist); var folder2Files = GetFilesWithRelativePaths(rootUPGRADE, searchpatterncsvlist); - var allKeys = new HashSet(folder1Files.Keys); - allKeys.UnionWith(folder2Files.Keys); + + var allfiles = new HashSet(folderWFiles.Keys); + allfiles.UnionWith(folder2Files.Keys); var savedcursortop = Console.CursorTop; Console.WriteLine(); var actualcursortop = Console.CursorTop; var numberofprocessedfiles = 0; var upgradefiles = new Dictionary(); - foreach (var relativePath in allKeys.OrderBy(p => p)) + string previousdirectory = null; + foreach (var onefile in allfiles.OrderBy(p => Path.GetDirectoryName(p))) { numberofprocessedfiles++; if (numberofprocessedfiles < 25) { actualcursortop = Console.CursorTop; - ColorConsole.SetCursorPosition(0, savedcursortop); ColorConsole.Write(relativePath, suffix: new string(' ', 20)); + ColorConsole.SetCursorPosition(0, savedcursortop); ColorConsole.Write(onefile, suffix: new string(' ', 20)); ColorConsole.SetCursorPosition(0, actualcursortop); } - bool inWORKFolder = folder1Files.TryGetValue(relativePath, out string file1); - bool inUPGRADEFolder = folder2Files.TryGetValue(relativePath, out string file2); + bool inWORKFolder = folderWFiles.TryGetValue(onefile, out string file1); + bool inUPGRADEFolder = folder2Files.TryGetValue(onefile, out string file2); if (inWORKFolder && inUPGRADEFolder) { if (!FilesAreEqual(file1, file2, out string difftext)) { + string actualdirectory = Path.GetDirectoryName(onefile); + if (previousdirectory != actualdirectory) + { + ColorConsole.WriteLine(actualdirectory, ConsoleColor.DarkYellow); + previousdirectory = actualdirectory; + } //ColorConsole.WriteLine($"DIFFERENT ({difftext}): {relativePath}", ConsoleColor.Yellow); - ColorConsole.WriteLine($"< {relativePath} ({difftext}):", ConsoleColor.Yellow); - upgradefiles.Add(relativePath, CompareDirectoriesActions.CopyFROMUPGRADE); + ColorConsole.WriteLine($"< {onefile} ({difftext}):", ConsoleColor.Yellow); + upgradefiles.Add(onefile, CompareDirectoriesActions.CopyFROMUPGRADE); } } else if (inWORKFolder) { + string actualdirectory = Path.GetDirectoryName(onefile); + if (previousdirectory != actualdirectory) + { + ColorConsole.WriteLine(actualdirectory, ConsoleColor.DarkYellow); + previousdirectory = actualdirectory; + } //ColorConsole.WriteLine($"ONLY IN Folder1: {relativePath}", ConsoleColor.Yellow); - ColorConsole.WriteLine($"-- {relativePath}", ConsoleColor.Yellow); - upgradefiles.Add(relativePath, CompareDirectoriesActions.DeleteINWORKING); + ColorConsole.WriteLine($"-- {onefile}", ConsoleColor.Yellow); + upgradefiles.Add(onefile, CompareDirectoriesActions.DeleteINWORKING); } else if (inUPGRADEFolder) { + string actualdirectory = Path.GetDirectoryName(onefile); + if (previousdirectory != actualdirectory) + { + ColorConsole.WriteLine(actualdirectory, ConsoleColor.DarkYellow); + previousdirectory = actualdirectory; + } //ColorConsole.WriteLine($"ONLY IN Folder2: {relativePath}", ConsoleColor.Yellow); - ColorConsole.WriteLine($"<< {relativePath}", ConsoleColor.Yellow); - upgradefiles.Add(relativePath, CompareDirectoriesActions.CopyFROMUPGRADE); + ColorConsole.WriteLine($"<< {onefile}", ConsoleColor.Yellow); + upgradefiles.Add(onefile, CompareDirectoriesActions.CopyFROMUPGRADE); } } ColorConsole.WriteLine(); @@ -132,7 +153,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS } return o; } - private enum CompareDirectoriesActions { CopyFROMUPGRADE, DeleteINWORKING,} + private enum CompareDirectoriesActions { CopyFROMUPGRADE, DeleteINWORKING,} private static Dictionary GetFilesWithRelativePaths(string root,string searchpattern="*") { var searchpatternlist = searchpattern.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries); @@ -142,10 +163,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS files.AddRange(Directory.GetFiles(root, sp, SearchOption.AllDirectories)); } var dict = new Dictionary(); - foreach (var file in files) + foreach (var fileAbsolutPath in files) { - string relativePath = GetRelativePath(root, file); - dict[relativePath] = file; + string relativePath = GetRelativePath(root, fileAbsolutPath); + dict[relativePath] = fileAbsolutPath; } return dict; } diff --git a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs index f28bcc1..6e80d34 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.34.0.0")] -[assembly: AssemblyFileVersion("1.34.0.0")] +[assembly: AssemblyVersion("1.34.1.0")] +[assembly: AssemblyFileVersion("1.34.1.0")] -- libgit2 0.21.2