58 lines
2.2 KiB
C#
58 lines
2.2 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using System.Collections.ObjectModel;
|
|
namespace File_Folder_Helper.ADO2024.PI3;
|
|
|
|
internal static partial class Helper20240916
|
|
{
|
|
|
|
private static ReadOnlyCollection<string> Get(string searchPattern, string[] configFileLines)
|
|
{
|
|
List<string> 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<Worker> logger, List<string> 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<string> 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);
|
|
}
|
|
}
|
|
|
|
} |