From 7b81eafd1f9a72c5970a6d4b1c983bd6cebee8e7 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Wed, 15 Mar 2023 17:44:21 +0100 Subject: [PATCH] [msbuild] Enable nullability and unify base and derived class for the GetFiles task. --- .../Xamarin.MacDev.Tasks/Tasks/GetFiles.cs | 28 ----------------- .../Tasks/GetFilesTaskBase.cs | 31 +++++++++++++++---- 2 files changed, 25 insertions(+), 34 deletions(-) delete mode 100644 msbuild/Xamarin.MacDev.Tasks/Tasks/GetFiles.cs diff --git a/msbuild/Xamarin.MacDev.Tasks/Tasks/GetFiles.cs b/msbuild/Xamarin.MacDev.Tasks/Tasks/GetFiles.cs deleted file mode 100644 index 97861a4a9668..000000000000 --- a/msbuild/Xamarin.MacDev.Tasks/Tasks/GetFiles.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Microsoft.Build.Framework; -using Xamarin.Messaging.Build.Client; - -namespace Xamarin.MacDev.Tasks { - public class GetFiles : GetFilesTaskBase, ITaskCallback, ICancelableTask { - public override bool Execute () - { - if (ShouldExecuteRemotely ()) - return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result; - - return base.Execute (); - } - - public IEnumerable GetAdditionalItemsToBeCopied () => Enumerable.Empty (); - - public bool ShouldCopyToBuildServer (ITaskItem item) => false; - - public bool ShouldCreateOutputFile (ITaskItem item) => false; - - public void Cancel () - { - if (ShouldExecuteRemotely ()) - BuildConnection.CancelAsync (BuildEngine4).Wait (); - } - } -} diff --git a/msbuild/Xamarin.MacDev.Tasks/Tasks/GetFilesTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks/Tasks/GetFilesTaskBase.cs index e84925236477..5057c2876acf 100644 --- a/msbuild/Xamarin.MacDev.Tasks/Tasks/GetFilesTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks/Tasks/GetFilesTaskBase.cs @@ -1,29 +1,36 @@ using System; using System.IO; using System.Collections.Generic; +using System.Linq; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using Xamarin.MacDev.Tasks; using Xamarin.Localization.MSBuild; +using Xamarin.Messaging.Build.Client; + +#nullable enable namespace Xamarin.MacDev.Tasks { - public abstract class GetFilesTaskBase : XamarinTask { + public abstract class GetFiles : XamarinTask, ITaskCallback, ICancelableTask { [Required] - public string Path { get; set; } + public string Path { get; set; } = string.Empty; - public string Pattern { get; set; } + public string Pattern { get; set; } = string.Empty; - public string Option { get; set; } + public string Option { get; set; } = string.Empty; - public string Exclude { get; set; } + public string Exclude { get; set; } = string.Empty; [Output] - public ITaskItem [] Files { get; set; } + public ITaskItem [] Files { get; set; } = Array.Empty (); public override bool Execute () { + if (ShouldExecuteRemotely ()) + return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result; + var path = Path.Replace ('\\', '/').TrimEnd ('/'); var exclude = new HashSet (); var items = new List (); @@ -66,5 +73,17 @@ public override bool Execute () return !Log.HasLoggedErrors; } + + public IEnumerable GetAdditionalItemsToBeCopied () => Enumerable.Empty (); + + public bool ShouldCopyToBuildServer (ITaskItem item) => false; + + public bool ShouldCreateOutputFile (ITaskItem item) => false; + + public void Cancel () + { + if (ShouldExecuteRemotely ()) + BuildConnection.CancelAsync (BuildEngine4).Wait (); + } } }