TeamCity.CSharpInteractive/Cleaner.cs (20 lines of code) (raw):
// ReSharper disable ClassNeverInstantiated.Global
namespace TeamCity.CSharpInteractive;
internal class Cleaner : ICleaner
{
private readonly ILog<Cleaner> _log;
private readonly IFileSystem _fileSystem;
public Cleaner(ILog<Cleaner> log, IFileSystem fileSystem)
{
_log = log;
_fileSystem = fileSystem;
}
public IDisposable Track(string path)
{
_log.Trace(() => new[] {new Text($"Start tracking \"{path}\".")});
return Disposable.Create(() =>
{
_log.Trace(() => new[] {new Text($"Delete \"{path}\".")});
_fileSystem.DeleteDirectory(path, true);
});
}
}