2021-06-14 16:22:08 -07:00
|
|
|
using System.IO.Abstractions;
|
|
|
|
|
|
|
|
|
|
namespace k8s
|
|
|
|
|
{
|
|
|
|
|
public static class FileUtils
|
|
|
|
|
{
|
2021-08-10 10:40:40 -07:00
|
|
|
private static readonly IFileSystem RealFileSystem = new FileSystem();
|
2021-06-14 16:22:08 -07:00
|
|
|
private static IFileSystem currentFileSystem = null;
|
|
|
|
|
|
|
|
|
|
public static void InjectFilesystem(IFileSystem fs)
|
|
|
|
|
{
|
|
|
|
|
currentFileSystem = fs;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static IFileSystem FileSystem()
|
|
|
|
|
{
|
2021-08-10 10:40:40 -07:00
|
|
|
return currentFileSystem != null ? currentFileSystem : RealFileSystem;
|
2021-06-14 16:22:08 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed class InjectedFileSystem : IDisposable
|
|
|
|
|
{
|
|
|
|
|
public InjectedFileSystem(IFileSystem fs)
|
|
|
|
|
{
|
|
|
|
|
InjectFilesystem(fs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
InjectFilesystem(null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|