Add LayoutWorker that can block files from publishing (#2176)
authorJuan Hoyos <juan.hoyos@microsoft.com>
Tue, 13 Apr 2021 21:12:12 +0000 (14:12 -0700)
committerGitHub <noreply@github.com>
Tue, 13 Apr 2021 21:12:12 +0000 (14:12 -0700)
eng/release/DiagnosticsReleaseTool/Common/FileIgnoreWorker.cs [new file with mode: 0644]

diff --git a/eng/release/DiagnosticsReleaseTool/Common/FileIgnoreWorker.cs b/eng/release/DiagnosticsReleaseTool/Common/FileIgnoreWorker.cs
new file mode 100644 (file)
index 0000000..08ae49d
--- /dev/null
@@ -0,0 +1,27 @@
+using System;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace ReleaseTool.Core
+{
+    internal class SkipLayoutWorker : ILayoutWorker
+    {
+        private readonly Func<FileInfo, bool> _shouldHandleFileFunc;
+
+        public SkipLayoutWorker(Func<FileInfo, bool> shouldHandleFileFunc)
+        {
+            _shouldHandleFileFunc = shouldHandleFileFunc;
+        }
+
+        public void Dispose() {}
+
+        public ValueTask<LayoutWorkerResult> HandleFileAsync(FileInfo file, CancellationToken ct)
+        {
+            LayoutResultStatus status = _shouldHandleFileFunc(file) ? 
+                LayoutResultStatus.FileHandled : LayoutResultStatus.FileNotHandled;
+
+            return new ValueTask<LayoutWorkerResult>(new LayoutWorkerResult(status));
+        }
+    }
+}
\ No newline at end of file