diff --git a/.vscode/launch.json b/.vscode/launch.json index 6fcb53c..da2d105 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -13,12 +13,12 @@ "args": [ "s", "X", - "D:/5-Other-Small/Kanban-messa010ec/Kanban/Work-Items", - "Day-Helper-2024-09-11", - "*.json", - ".kanbn", - "Epic|Feature|User Story", - "L:/DevOps/Mesa_FI/File-Folder-Helper/.vscode/helper/tfs", + "L:/Git/Linux-Ubuntu-Server/etc/nginx/include", + "Day-Helper-2024-09-16", + "*.conf", + "L:/Git/Linux-Ubuntu-Server/etc/nginx/sites-available/default", + "include /etc/nginx/include/", + "proxy_pass", "666", "777", "888", diff --git a/Day/HelperDay.cs b/Day/HelperDay.cs index 1123eba..2b49a85 100644 --- a/Day/HelperDay.cs +++ b/Day/HelperDay.cs @@ -107,6 +107,8 @@ internal static class HelperDay Day.Q32024.Helper20240910.MoveFilesToWeekOfYear(logger, args); else if (args[1] == "Day-Helper-2024-09-11") Day.Q32024.Helper20240911.WriteMarkdown(logger, args); + else if (args[1] == "Day-Helper-2024-09-16") + Day.Q32024.Helper20240916.DebugProxyPass(logger, args); else throw new Exception(appSettings.Company); } diff --git a/Day/Q32024/Helper-2024-09-16.cs b/Day/Q32024/Helper-2024-09-16.cs new file mode 100644 index 0000000..8e25389 --- /dev/null +++ b/Day/Q32024/Helper-2024-09-16.cs @@ -0,0 +1,58 @@ +using Microsoft.Extensions.Logging; +using System.Collections.ObjectModel; +namespace File_Folder_Helper.Day.Q32024; + +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); + } + } + +} \ No newline at end of file