41 lines
1.4 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|