Public Access
Generalize settings and logs assistant
PR and Push Build/Test / build-and-test (push) Successful in 16m43s
PR and Push Build/Test / build-and-test (push) Successful in 16m43s
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
namespace MeetingAssistant;
|
||||
|
||||
internal static class RuntimeContentLocator
|
||||
{
|
||||
public static IEnumerable<string> CandidateDocumentationPaths(string fileName)
|
||||
{
|
||||
foreach (var directory in EnumerateBaseDirectoryAndParents())
|
||||
{
|
||||
yield return Path.Combine(directory, "docs", fileName);
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<string> CandidateDirectoryPaths(params string[] segments)
|
||||
{
|
||||
foreach (var directory in EnumerateBaseDirectoryAndParents())
|
||||
{
|
||||
yield return Path.Combine([directory, .. segments]);
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<string> CandidateContentPaths(string fileName)
|
||||
{
|
||||
foreach (var directory in EnumerateBaseDirectoryAndParents())
|
||||
{
|
||||
yield return Path.Combine(directory, "MeetingAssistant", "Content", fileName);
|
||||
yield return Path.Combine(directory, "Content", fileName);
|
||||
}
|
||||
}
|
||||
|
||||
private static IEnumerable<string> EnumerateBaseDirectoryAndParents(int maxParentDepth = 8)
|
||||
{
|
||||
var current = new DirectoryInfo(AppContext.BaseDirectory);
|
||||
for (var i = 0; i < maxParentDepth && current is not null; i++)
|
||||
{
|
||||
yield return current.FullName;
|
||||
current = current.Parent;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user