Files
gregExtractor/Utils/CoveragePathResolver.cs
T

41 lines
1.4 KiB
C#

namespace gregExtractor.Utils;
public static class CoveragePathResolver
{
public static string[] ResolveSourceDirs(string? sourceDirsOption, string workingDirectory)
{
if (!string.IsNullOrWhiteSpace(sourceDirsOption))
{
return sourceDirsOption
.Split(';', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
.Where(Directory.Exists)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToArray();
}
return GetDefaultSourceDirCandidates(workingDirectory)
.Where(Directory.Exists)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToArray();
}
public static string GetDefaultSourcesText(string workingDirectory)
{
return string.Join(';', GetDefaultSourceDirCandidates(workingDirectory).Where(Directory.Exists));
}
private static IEnumerable<string> GetDefaultSourceDirCandidates(string workingDirectory)
{
string? parent = Directory.GetParent(workingDirectory)?.FullName;
yield return Path.Combine(workingDirectory, "Hooks");
yield return Path.Combine(workingDirectory, "framework");
if (!string.IsNullOrWhiteSpace(parent))
{
yield return Path.Combine(parent, "gregCore", "Hooks");
yield return Path.Combine(parent, "gregCore", "framework");
}
}
}