2021-06-14 16:22:08 -07:00
|
|
|
using System;
|
|
|
|
|
using System.IO.Abstractions;
|
|
|
|
|
|
|
|
|
|
namespace k8s
|
|
|
|
|
{
|
|
|
|
|
public static class FileUtils
|
|
|
|
|
{
|
2021-07-01 23:45:55 +08: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()
|
|
|
|
|
{
|
|
|
|
|
return currentFileSystem != null ? currentFileSystem : realFileSystem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed class InjectedFileSystem : IDisposable
|
|
|
|
|
{
|
|
|
|
|
public InjectedFileSystem(IFileSystem fs)
|
|
|
|
|
{
|
|
|
|
|
InjectFilesystem(fs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
InjectFilesystem(null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|