using Microsoft.Extensions.Logging; using System.Collections.ObjectModel; namespace File_Folder_Helper.ADO2024.PI3; internal static partial class Helper20240916 { private static ReadOnlyCollection Get(string searchPattern, string[] configFileLines) { List results = []; string[] segments; foreach (string line in configFileLines) { if (line.Length < 2 || line[0] == '#') continue; segments = line.Split(searchPattern); if (segments.Length < 2) continue; results.Add(segments[1].Split(';')[0]); } return results.AsReadOnly(); } internal static void DebugProxyPass(ILogger logger, List args) { string debug; string enable; string[] lines; string fileName; string[] segments; string configFile = args[3]; string searchPattern = args[2]; string searchPatternB = args[4]; string searchPatternC = args[5]; string sourceDirectory = Path.GetFullPath(args[0]); string[] configFileLines = File.ReadAllLines(configFile); ReadOnlyCollection enabledSites = Get(searchPatternB, configFileLines); logger.LogInformation("Found {files} file(s)", enabledSites.Count); string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories); logger.LogInformation("With search pattern '{SearchPattern}' found {files} file(s)", searchPattern, files.Length); foreach (string file in files) { debug = string.Empty; lines = File.ReadAllLines(file); fileName = Path.GetFileName(file); foreach (string line in lines) { segments = line.Split(searchPatternC); if (segments.Length < 2) continue; debug = segments[1].Trim(); } enable = enabledSites.Contains(fileName) ? string.Empty : "# "; logger.LogInformation("{enable}{searchPatternB}{fileName}; # https://{fileName}.phares.duckddns.org # {debug}", enable, searchPatternB, fileName, fileName, debug); } } }