From 41469fe4802cc5692bed12a61b698f5a248c9928 Mon Sep 17 00:00:00 2001
From: Matthias Koch
Date: Fri, 19 May 2023 11:41:17 +0200
Subject: [PATCH 1/9] Fix secret filtering and move to
ArgumentStringHandler.GetFilter
---
source/Nuke.Tooling/ArgumentStringHandler.cs | 13 +++++++++----
source/Nuke.Tooling/ProcessTasks.cs | 8 +-------
2 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/source/Nuke.Tooling/ArgumentStringHandler.cs b/source/Nuke.Tooling/ArgumentStringHandler.cs
index f98fa7cbb..e209320d5 100644
--- a/source/Nuke.Tooling/ArgumentStringHandler.cs
+++ b/source/Nuke.Tooling/ArgumentStringHandler.cs
@@ -19,6 +19,7 @@ namespace Nuke.Common.Tooling;
public ref struct ArgumentStringHandler
{
private DefaultInterpolatedStringHandler _builder;
+ private readonly List _secretValues;
public ArgumentStringHandler(
int literalLength,
@@ -26,12 +27,10 @@ public ArgumentStringHandler(
out bool handlerIsValid)
{
_builder = new(literalLength, formattedCount);
- SecretValues = new List();
+ _secretValues = new List();
handlerIsValid = true;
}
- public List SecretValues { get; }
-
public void AppendLiteral(string value)
{
_builder.AppendLiteral(value);
@@ -45,7 +44,7 @@ public void AppendFormatted(object obj, int alignment = 0, string format = null)
public void AppendFormatted(string value, int alignment = 0, string format = null)
{
if (format == "r")
- SecretValues.Add(value);
+ _secretValues.Add(value);
else if (!(value.IsDoubleQuoted() || value.IsSingleQuoted() || format == "nq"))
(value, format) = (value.DoubleQuoteIfNeeded(), null);
@@ -61,5 +60,11 @@ public string ToStringAndClear()
{
return _builder.ToStringAndClear();
}
+
+ public Func GetFilter()
+ {
+ var secretValues = _secretValues;
+ return x => secretValues.Aggregate(x, (arguments, value) => arguments.Replace(value, Arguments.Redacted));
+ }
}
#endif
diff --git a/source/Nuke.Tooling/ProcessTasks.cs b/source/Nuke.Tooling/ProcessTasks.cs
index 2ae564bd5..14a08a316 100644
--- a/source/Nuke.Tooling/ProcessTasks.cs
+++ b/source/Nuke.Tooling/ProcessTasks.cs
@@ -76,12 +76,6 @@ public static IProcess StartProcess(
bool? logInvocation = null,
Action logger = null)
{
- static Func GetOutputFilterForArgumentStringHandler(ref ArgumentStringHandler arguments)
- {
- var redactedValues = arguments.SecretValues;
- return x => redactedValues.Aggregate(x, (arguments, value) => arguments.ReplaceRegex(value, _ => Arguments.Redacted));
- }
-
return StartProcess(
toolPath,
arguments.ToStringAndClear(),
@@ -91,7 +85,7 @@ static Func GetOutputFilterForArgumentStringHandler(ref Argument
logOutput,
logInvocation,
logger,
- GetOutputFilterForArgumentStringHandler(ref arguments));
+ arguments.GetFilter());
}
#endif
From c51c8da6c7f7e67d886a18464ec0e0129953cd6f Mon Sep 17 00:00:00 2001
From: Matthias Koch
Date: Fri, 19 May 2023 12:00:08 +0200
Subject: [PATCH 2/9] Fix conversion from string to ArgumentStringHandler
---
source/Nuke.Tooling/ArgumentStringHandler.cs | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/source/Nuke.Tooling/ArgumentStringHandler.cs b/source/Nuke.Tooling/ArgumentStringHandler.cs
index e209320d5..d4ef4f0ff 100644
--- a/source/Nuke.Tooling/ArgumentStringHandler.cs
+++ b/source/Nuke.Tooling/ArgumentStringHandler.cs
@@ -31,6 +31,11 @@ public ArgumentStringHandler(
handlerIsValid = true;
}
+ public static implicit operator ArgumentStringHandler(string value)
+ {
+ return $"{value.NotNull()}";
+ }
+
public void AppendLiteral(string value)
{
_builder.AppendLiteral(value);
From 972138c3d6da0272f192ab214f4f65b363c0081d Mon Sep 17 00:00:00 2001
From: Matthias Koch
Date: Fri, 19 May 2023 12:01:08 +0200
Subject: [PATCH 3/9] Fix unquoting single arguments in ArgumentStringHandler
---
source/Nuke.Tooling/ArgumentStringHandler.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/Nuke.Tooling/ArgumentStringHandler.cs b/source/Nuke.Tooling/ArgumentStringHandler.cs
index d4ef4f0ff..be76b5a07 100644
--- a/source/Nuke.Tooling/ArgumentStringHandler.cs
+++ b/source/Nuke.Tooling/ArgumentStringHandler.cs
@@ -63,7 +63,7 @@ public void AppendFormatted(AbsolutePath path, int alignment = 0, string format
public string ToStringAndClear()
{
- return _builder.ToStringAndClear();
+ return _builder.ToStringAndClear().TrimMatchingDoubleQuotes();
}
public Func GetFilter()
From dcdf7a9b613a621d2acb796d632c1a55cb23202d Mon Sep 17 00:00:00 2001
From: Matthias Koch
Date: Fri, 19 May 2023 12:01:19 +0200
Subject: [PATCH 4/9] Add ArgumentStringHandlerTest
---
.../ArgumentStringHandlerTest.cs | 84 +++++++++++++++++++
1 file changed, 84 insertions(+)
create mode 100644 source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs
diff --git a/source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs b/source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs
new file mode 100644
index 000000000..f30a9ee54
--- /dev/null
+++ b/source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs
@@ -0,0 +1,84 @@
+// Copyright 2023 Maintainers of NUKE.
+// Distributed under the MIT License.
+// https://github.com/nuke-build/nuke/blob/master/LICENSE
+
+using FluentAssertions;
+using Nuke.Common.IO;
+using Nuke.Common.Tooling;
+using Xunit;
+
+namespace Nuke.Common.Tests;
+
+public class ArgumentStringHandlerTest
+{
+ [Fact]
+ public void Test()
+ {
+ ArgsToString($"start {"regular-args"} end").Should().Be("start regular-args end");
+ }
+
+ [Fact]
+ public void TestString()
+ {
+ ArgsToString("start end").Should().Be("start end");
+ }
+
+ [Fact]
+ public void TestSpacedHole()
+ {
+ ArgsToString($"start {"spaced args"} end").Should().Be("start \"spaced args\" end");
+ }
+
+ [Theory]
+ [InlineData("args", "start args end")]
+ [InlineData("spaced args", "start \"spaced args\" end")]
+ public void TestArgs(string args, string expected)
+ {
+ ArgsToString($"start {args} end").Should().Be(expected);
+ }
+
+ [Theory]
+ [InlineData("/some/path", "start /some/path end")]
+ [InlineData("/some/spaced path", "start \"/some/spaced path\" end")]
+ public void TestAbsolutePath(string path, string expected)
+ {
+ ArgsToString($"start {(AbsolutePath)path} end").Should().Be(expected);
+ }
+
+ [Fact]
+ public void TestFormat()
+ {
+ ArgsToString($"start {"spaced args":nq} end").Should().Be("start spaced args end");
+
+ var path = (AbsolutePath)"/some/path";
+ ArgsToString($"start {path:d} end").Should().Be("start \"/some/path\" end");
+ ArgsToString($"start {path:s} end").Should().Be("start '/some/path' end");
+ ArgsToString($"start {path:dn} end").Should().Be("start /some/path end");
+ ArgsToString($"start {path:sn} end").Should().Be("start /some/path end");
+
+ var spacedPath = (AbsolutePath)"/some/spaced path";
+ ArgsToString($"start {spacedPath:d} end").Should().Be("start \"/some/spaced path\" end");
+ ArgsToString($"start {spacedPath:s} end").Should().Be("start '/some/spaced path' end");
+ ArgsToString($"start {spacedPath:dn} end").Should().Be("start \"/some/spaced path\" end");
+ ArgsToString($"start {spacedPath:sn} end").Should().Be("start '/some/spaced path' end");
+ }
+
+ [Fact]
+ public void TestUnquote()
+ {
+ ArgsToString($"{"start end"}").Should().Be("start end");
+ ArgsToString($"start {"spaced end"}").Should().Be("start \"spaced end\"");
+ ArgsToString($"{"spaced start"} end").Should().Be("\"spaced start\" end");
+ }
+
+ [Fact]
+ public void TestSecret()
+ {
+ ArgumentStringHandler args = $"start {"this+is/some!secret":r} end";
+
+ var filteredOutput = args.GetFilter().Invoke("There is a this+is/some!secret!");
+ filteredOutput.Should().Be("There is a [REDACTED]!");
+ }
+
+ string ArgsToString(ArgumentStringHandler args) => args.ToStringAndClear();
+}
From e4bda590d0a1ee15655ff37a0716bd909de255d6 Mon Sep 17 00:00:00 2001
From: Matthias Koch
Date: Fri, 19 May 2023 14:56:52 +0200
Subject: [PATCH 5/9] Fix unnecessary ref usage for ArgumentStringHandler
---
source/Nuke.Tooling.Generator/Generators/TaskGenerator.cs | 4 ++--
source/Nuke.Tooling/ProcessTasks.cs | 2 +-
source/Nuke.Tooling/Tool.cs | 2 +-
source/Nuke.Tooling/ToolExecutor.cs | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/source/Nuke.Tooling.Generator/Generators/TaskGenerator.cs b/source/Nuke.Tooling.Generator/Generators/TaskGenerator.cs
index c937d5ab3..afd44d374 100644
--- a/source/Nuke.Tooling.Generator/Generators/TaskGenerator.cs
+++ b/source/Nuke.Tooling.Generator/Generators/TaskGenerator.cs
@@ -58,7 +58,7 @@ private static void WriteGenericTask(this ToolWriter writer)
var tool = writer.Tool;
var parameters = new[]
{
- "ref ArgumentStringHandler arguments",
+ "ArgumentStringHandler arguments",
"string workingDirectory = null",
"IReadOnlyDictionary environmentVariables = null",
"int? timeout = null",
@@ -70,7 +70,7 @@ private static void WriteGenericTask(this ToolWriter writer)
var arguments = new[]
{
$"{tool.Name}Path",
- "ref arguments",
+ "arguments",
"workingDirectory",
"environmentVariables",
"timeout",
diff --git a/source/Nuke.Tooling/ProcessTasks.cs b/source/Nuke.Tooling/ProcessTasks.cs
index 14a08a316..2b98b52b5 100644
--- a/source/Nuke.Tooling/ProcessTasks.cs
+++ b/source/Nuke.Tooling/ProcessTasks.cs
@@ -68,7 +68,7 @@ public static IProcess StartProcess(ToolSettings toolSettings)
public static IProcess StartProcess(
string toolPath,
- ref ArgumentStringHandler arguments,
+ ArgumentStringHandler arguments,
string workingDirectory = null,
IReadOnlyDictionary environmentVariables = null,
int? timeout = null,
diff --git a/source/Nuke.Tooling/Tool.cs b/source/Nuke.Tooling/Tool.cs
index acd7938ad..bfc39beb1 100644
--- a/source/Nuke.Tooling/Tool.cs
+++ b/source/Nuke.Tooling/Tool.cs
@@ -10,7 +10,7 @@ namespace Nuke.Common.Tooling;
#if NET6_0_OR_GREATER
public delegate IReadOnlyCollection
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Codecov(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Codecov(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(CodecovPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CodecovLogger);
+ using var process = ProcessTasks.StartProcess(CodecovPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CodecovLogger);
(exitHandler ?? (p => CodecovExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/CorFlags/CorFlags.Generated.cs b/source/Nuke.Common/Tools/CorFlags/CorFlags.Generated.cs
index 9daed19c4..0ae7a9885 100644
--- a/source/Nuke.Common/Tools/CorFlags/CorFlags.Generated.cs
+++ b/source/Nuke.Common/Tools/CorFlags/CorFlags.Generated.cs
@@ -40,9 +40,9 @@ public partial class CorFlagsTasks
/// The CorFlags Conversion tool allows you to configure the CorFlags section of the header of a portable executable image.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection CorFlags(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection CorFlags(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(CorFlagsPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CorFlagsLogger);
+ using var process = ProcessTasks.StartProcess(CorFlagsPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CorFlagsLogger);
(exitHandler ?? (p => CorFlagsExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs b/source/Nuke.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs
index 6261badad..5d7bc33ff 100644
--- a/source/Nuke.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs
+++ b/source/Nuke.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs
@@ -40,9 +40,9 @@ public partial class CoverallsNetTasks
/// Coveralls uploader for .Net Code coverage of your C# source code. Should work with any code files that get reported with the supported coverage tools, but the primary focus is CSharp.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection CoverallsNet(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection CoverallsNet(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(CoverallsNetPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CoverallsNetLogger);
+ using var process = ProcessTasks.StartProcess(CoverallsNetPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CoverallsNetLogger);
(exitHandler ?? (p => CoverallsNetExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Coverlet/Coverlet.Generated.cs b/source/Nuke.Common/Tools/Coverlet/Coverlet.Generated.cs
index 601498cf1..120ef7510 100644
--- a/source/Nuke.Common/Tools/Coverlet/Coverlet.Generated.cs
+++ b/source/Nuke.Common/Tools/Coverlet/Coverlet.Generated.cs
@@ -41,9 +41,9 @@ public partial class CoverletTasks
/// Coverlet is a cross platform code coverage library for .NET Core, with support for line, branch and method coverage.The dotnet test command is used to execute unit tests in a given project. Unit tests are console application projects that have dependencies on the unit test framework (for example, MSTest, NUnit, or xUnit) and the dotnet test runner for the unit testing framework. These are packaged as NuGet packages and are restored as ordinary dependencies for the project.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Coverlet(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Coverlet(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(CoverletPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CoverletLogger);
+ using var process = ProcessTasks.StartProcess(CoverletPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? CoverletLogger);
(exitHandler ?? (p => CoverletExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs b/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs
index cf8824629..57e56bb53 100644
--- a/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs
+++ b/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs
@@ -40,9 +40,9 @@ public partial class DocFXTasks
/// DocFX is an API documentation generator for .NET, and currently it supports C# and VB. It generates API reference documentation from triple-slash comments in your source code. It also allows you to use Markdown files to create additional topics such as tutorials and how-tos, and to customize the generated reference documentation. DocFX builds a static HTML website from your source code and Markdown files, which can be easily hosted on any web servers (for example, github.io). Also, DocFX provides you the flexibility to customize the layout and style of your website through templates. If you are interested in creating your own website with your own styles, you can follow how to create custom template to create custom templates.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection DocFX(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection DocFX(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(DocFXPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DocFXLogger);
+ using var process = ProcessTasks.StartProcess(DocFXPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DocFXLogger);
(exitHandler ?? (p => DocFXExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Docker/Docker.Generated.cs b/source/Nuke.Common/Tools/Docker/Docker.Generated.cs
index 50714b50a..023c4726f 100644
--- a/source/Nuke.Common/Tools/Docker/Docker.Generated.cs
+++ b/source/Nuke.Common/Tools/Docker/Docker.Generated.cs
@@ -41,9 +41,9 @@ public partial class DockerTasks
/// Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Docker(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Docker(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(DockerPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DockerLogger);
+ using var process = ProcessTasks.StartProcess(DockerPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DockerLogger);
(exitHandler ?? (p => DockerExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/DotCover/DotCover.Generated.cs b/source/Nuke.Common/Tools/DotCover/DotCover.Generated.cs
index 273f65b8f..0a940f17a 100644
--- a/source/Nuke.Common/Tools/DotCover/DotCover.Generated.cs
+++ b/source/Nuke.Common/Tools/DotCover/DotCover.Generated.cs
@@ -40,9 +40,9 @@ public partial class DotCoverTasks
/// dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection DotCover(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection DotCover(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(DotCoverPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DotCoverLogger);
+ using var process = ProcessTasks.StartProcess(DotCoverPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DotCoverLogger);
(exitHandler ?? (p => DotCoverExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs b/source/Nuke.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs
index 9ff04fb0b..b1c4fc2f7 100644
--- a/source/Nuke.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs
+++ b/source/Nuke.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs
@@ -40,9 +40,9 @@ public partial class DotMemoryUnitTasks
/// dotMemory Unit is a unit testing framework which allows you to write tests that check your code for all kinds of memory issues. You can now extend NUnit, MSTest or another .NET unit testing framework with the functionality of a memory profiler.Perfect fit for any workflow: integrated with Visual Studio, works with stand-alone unit test runners, Continuous Integration ready. Last but not least, dotMemory Unit is free.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection DotMemoryUnit(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection DotMemoryUnit(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(DotMemoryUnitPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DotMemoryUnitLogger);
+ using var process = ProcessTasks.StartProcess(DotMemoryUnitPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DotMemoryUnitLogger);
(exitHandler ?? (p => DotMemoryUnitExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs b/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs
index 6e6ff1d89..79b1397db 100644
--- a/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs
+++ b/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs
@@ -38,9 +38,9 @@ public partial class DotNetTasks
///
/// For more details, visit the official website.
///
- public static IReadOnlyCollection DotNet(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection DotNet(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(DotNetPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DotNetLogger);
+ using var process = ProcessTasks.StartProcess(DotNetPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? DotNetLogger);
(exitHandler ?? (p => DotNetExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/EntityFramework/EntityFramework.Generated.cs b/source/Nuke.Common/Tools/EntityFramework/EntityFramework.Generated.cs
index 70f018d42..96530204c 100644
--- a/source/Nuke.Common/Tools/EntityFramework/EntityFramework.Generated.cs
+++ b/source/Nuke.Common/Tools/EntityFramework/EntityFramework.Generated.cs
@@ -40,9 +40,9 @@ public partial class EntityFrameworkTasks
/// The command-line interface (CLI) tools for Entity Framework Core perform design-time development tasks. For example, they create migrations, apply migrations, and generate code for a model based on an existing database. The commands are an extension to the cross-platform dotnet command, which is part of the .NET Core SDK. These tools work with .NET Core projects.If you're using Visual Studio, we recommend the Package Manager Console tools instead:
- They automatically work with the current project selected in the Package Manager Console without requiring that you manually switch directories.
- They automatically open files generated by a command after the command is completed.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection EntityFramework(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection EntityFramework(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(EntityFrameworkPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? EntityFrameworkLogger);
+ using var process = ProcessTasks.StartProcess(EntityFrameworkPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? EntityFrameworkLogger);
(exitHandler ?? (p => EntityFrameworkExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Fixie/Fixie.Generated.cs b/source/Nuke.Common/Tools/Fixie/Fixie.Generated.cs
index 6b735fb4f..cc66539e0 100644
--- a/source/Nuke.Common/Tools/Fixie/Fixie.Generated.cs
+++ b/source/Nuke.Common/Tools/Fixie/Fixie.Generated.cs
@@ -40,9 +40,9 @@ public partial class FixieTasks
/// Fixie is a .NET modern test framework similar to NUnit and xUnit, but with an emphasis on low-ceremony defaults and flexible customization.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Fixie(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Fixie(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(FixiePath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? FixieLogger);
+ using var process = ProcessTasks.StartProcess(FixiePath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? FixieLogger);
(exitHandler ?? (p => FixieExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Git/Git.Generated.cs b/source/Nuke.Common/Tools/Git/Git.Generated.cs
index cba30d5cf..92213c9ed 100644
--- a/source/Nuke.Common/Tools/Git/Git.Generated.cs
+++ b/source/Nuke.Common/Tools/Git/Git.Generated.cs
@@ -40,9 +40,9 @@ public partial class GitTasks
/// Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Git(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Git(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(GitPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitLogger);
+ using var process = ProcessTasks.StartProcess(GitPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitLogger);
(exitHandler ?? (p => GitExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/GitLink/GitLink.Generated.cs b/source/Nuke.Common/Tools/GitLink/GitLink.Generated.cs
index 1107eb27d..24e73353e 100644
--- a/source/Nuke.Common/Tools/GitLink/GitLink.Generated.cs
+++ b/source/Nuke.Common/Tools/GitLink/GitLink.Generated.cs
@@ -40,9 +40,9 @@ public partial class GitLinkTasks
/// GitLink makes symbol servers obsolete which saves you both time with uploading source files with symbols and the user no longer has to specify custom symbol servers (such as symbolsource.org). The advantage of GitLink is that it is fully customized for Git. It also works with GitHub or BitBucket urls so it does not require a local git repository to work. This makes it perfectly usable in continuous integration servers such as Continua CI. Updating all the pdb files is very fast. A solution with over 85 projects will be handled in less than 30 seconds. When using GitLink, the user no longer has to specify symbol servers. The only requirement is to ensure the check the Enable source server support option in Visual Studio.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection GitLink(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection GitLink(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(GitLinkPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitLinkLogger);
+ using var process = ProcessTasks.StartProcess(GitLinkPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitLinkLogger);
(exitHandler ?? (p => GitLinkExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs b/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs
index fc18f964b..45fbd89f9 100644
--- a/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs
+++ b/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs
@@ -40,9 +40,9 @@ public partial class GitReleaseManagerTasks
/// GitReleaseManager is a tool that will help create a set of release notes for your application/product. It does this using the collection of issues which are stored on the GitHub Issue Tracker for your application/product.By inspecting the issues that have been assigned to a particular milestone, GitReleaseManager creates a set of release notes, in markdown format, which are then used to create a Release on GitHub.In addition to creating a Release, GitReleaseManager can be used to publish a release, close a milestone, and also to export the complete set of release notes for your application/product.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection GitReleaseManager(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection GitReleaseManager(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(GitReleaseManagerPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitReleaseManagerLogger);
+ using var process = ProcessTasks.StartProcess(GitReleaseManagerPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitReleaseManagerLogger);
(exitHandler ?? (p => GitReleaseManagerExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/GitVersion/GitVersion.Generated.cs b/source/Nuke.Common/Tools/GitVersion/GitVersion.Generated.cs
index d357aedd7..1dcef6e6f 100644
--- a/source/Nuke.Common/Tools/GitVersion/GitVersion.Generated.cs
+++ b/source/Nuke.Common/Tools/GitVersion/GitVersion.Generated.cs
@@ -40,9 +40,9 @@ public partial class GitVersionTasks
/// GitVersion is a tool to help you achieve Semantic Versioning on your project.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection GitVersion(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection GitVersion(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(GitVersionPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitVersionLogger);
+ using var process = ProcessTasks.StartProcess(GitVersionPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? GitVersionLogger);
(exitHandler ?? (p => GitVersionExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Helm/Helm.Generated.cs b/source/Nuke.Common/Tools/Helm/Helm.Generated.cs
index c298e10b2..085088010 100644
--- a/source/Nuke.Common/Tools/Helm/Helm.Generated.cs
+++ b/source/Nuke.Common/Tools/Helm/Helm.Generated.cs
@@ -38,9 +38,9 @@ public partial class HelmTasks
///
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Helm(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Helm(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(HelmPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? HelmLogger);
+ using var process = ProcessTasks.StartProcess(HelmPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? HelmLogger);
(exitHandler ?? (p => HelmExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs b/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs
index 39a7d0ee9..98795ef3a 100644
--- a/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs
+++ b/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs
@@ -40,9 +40,9 @@ public partial class ILRepackTasks
/// ILRepack is meant at replacing ILMerge / Mono.Merge.The former being closed-source (now open-sourced), impossible to customize, slow, resource consuming and many more. The later being deprecated, unsupported, and based on an old version of Mono.Cecil.Here we're using latest (slightly modified) Cecil sources (0.9), you can find the fork here. Mono.Posix is also required (build only, it gets merged afterwards) for executable bit set on target file.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection ILRepack(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection ILRepack(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(ILRepackPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? ILRepackLogger);
+ using var process = ProcessTasks.StartProcess(ILRepackPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? ILRepackLogger);
(exitHandler ?? (p => ILRepackExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/InnoSetup/InnoSetup.Generated.cs b/source/Nuke.Common/Tools/InnoSetup/InnoSetup.Generated.cs
index e9e7ce81a..ecabfa77d 100644
--- a/source/Nuke.Common/Tools/InnoSetup/InnoSetup.Generated.cs
+++ b/source/Nuke.Common/Tools/InnoSetup/InnoSetup.Generated.cs
@@ -40,9 +40,9 @@ public partial class InnoSetupTasks
/// Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection InnoSetup(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection InnoSetup(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(InnoSetupPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? InnoSetupLogger);
+ using var process = ProcessTasks.StartProcess(InnoSetupPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? InnoSetupLogger);
(exitHandler ?? (p => InnoSetupExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs b/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs
index 7b09166d8..d4245f505 100644
--- a/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs
+++ b/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs
@@ -38,9 +38,9 @@ public partial class KubernetesTasks
///
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Kubernetes(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Kubernetes(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(KubernetesPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? KubernetesLogger);
+ using var process = ProcessTasks.StartProcess(KubernetesPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? KubernetesLogger);
(exitHandler ?? (p => KubernetesExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/MSBuild/MSBuild.Generated.cs b/source/Nuke.Common/Tools/MSBuild/MSBuild.Generated.cs
index 3cf835cd3..7bf80de89 100644
--- a/source/Nuke.Common/Tools/MSBuild/MSBuild.Generated.cs
+++ b/source/Nuke.Common/Tools/MSBuild/MSBuild.Generated.cs
@@ -37,9 +37,9 @@ public partial class MSBuildTasks
/// The Microsoft Build Engine is a platform for building applications. This engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but it doesn't depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed. Visual Studio uses MSBuild to load and build managed projects. The project files in Visual Studio (.csproj,.vbproj, vcxproj, and others) contain MSBuild XML code that executes when you build a project by using the IDE. Visual Studio projects import all the necessary settings and build processes to do typical development work, but you can extend or modify them from within Visual Studio or by using an XML editor.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection MSBuild(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection MSBuild(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(MSBuildPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MSBuildLogger);
+ using var process = ProcessTasks.StartProcess(MSBuildPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MSBuildLogger);
(exitHandler ?? (p => MSBuildExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/MSpec/MSpec.Generated.cs b/source/Nuke.Common/Tools/MSpec/MSpec.Generated.cs
index 3dfc9bd45..9be4fe6e3 100644
--- a/source/Nuke.Common/Tools/MSpec/MSpec.Generated.cs
+++ b/source/Nuke.Common/Tools/MSpec/MSpec.Generated.cs
@@ -40,9 +40,9 @@ public partial class MSpecTasks
/// MSpec is called a 'context/specification' test framework because of the 'grammar' that is used in describing and coding the tests or 'specs'.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection MSpec(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection MSpec(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(MSpecPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MSpecLogger);
+ using var process = ProcessTasks.StartProcess(MSpecPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MSpecLogger);
(exitHandler ?? (p => MSpecExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/MakeNsis/MakeNSIS.Generated.cs b/source/Nuke.Common/Tools/MakeNsis/MakeNSIS.Generated.cs
index 4420e907b..1933d2e3a 100644
--- a/source/Nuke.Common/Tools/MakeNsis/MakeNSIS.Generated.cs
+++ b/source/Nuke.Common/Tools/MakeNsis/MakeNSIS.Generated.cs
@@ -40,9 +40,9 @@ public partial class MakeNSISTasks
/// NSIS creates installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because it's based on script files you can fully control every part of your installer.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection MakeNSIS(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection MakeNSIS(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(MakeNSISPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MakeNSISLogger);
+ using var process = ProcessTasks.StartProcess(MakeNSISPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MakeNSISLogger);
(exitHandler ?? (p => MakeNSISExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/MauiCheck/MauiCheck.Generated.cs b/source/Nuke.Common/Tools/MauiCheck/MauiCheck.Generated.cs
index 09517d62b..1d3633c52 100644
--- a/source/Nuke.Common/Tools/MauiCheck/MauiCheck.Generated.cs
+++ b/source/Nuke.Common/Tools/MauiCheck/MauiCheck.Generated.cs
@@ -40,9 +40,9 @@ public partial class MauiCheckTasks
/// A dotnet tool for helping set up your .NET MAUI environment.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection MauiCheck(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection MauiCheck(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(MauiCheckPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MauiCheckLogger);
+ using var process = ProcessTasks.StartProcess(MauiCheckPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MauiCheckLogger);
(exitHandler ?? (p => MauiCheckExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/MinVer/MinVer.Generated.cs b/source/Nuke.Common/Tools/MinVer/MinVer.Generated.cs
index 31c684a2a..6d1549a3f 100644
--- a/source/Nuke.Common/Tools/MinVer/MinVer.Generated.cs
+++ b/source/Nuke.Common/Tools/MinVer/MinVer.Generated.cs
@@ -40,9 +40,9 @@ public partial class MinVerTasks
/// Minimalistic versioning using Git tags.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection MinVer(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection MinVer(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(MinVerPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MinVerLogger);
+ using var process = ProcessTasks.StartProcess(MinVerPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? MinVerLogger);
(exitHandler ?? (p => MinVerExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs b/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs
index 3e580f1a3..0a5e7745c 100644
--- a/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs
+++ b/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs
@@ -41,9 +41,9 @@ public partial class NSwagTasks
/// The project combines the functionality of Swashbuckle (Swagger generation) and AutoRest (client generation) in one toolchain. This way a lot of incompatibilites can be avoided and features which are not well described by the Swagger specification or JSON Schema are better supported (e.g. inheritance, enum and reference handling). The NSwag project heavily uses NJsonSchema for .NET for JSON Schema handling and C#/TypeScript class/interface generation.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection NSwag(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection NSwag(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(NSwagPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NSwagLogger);
+ using var process = ProcessTasks.StartProcess(NSwagPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NSwagLogger);
(exitHandler ?? (p => NSwagExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/NUnit/NUnit.Generated.cs b/source/Nuke.Common/Tools/NUnit/NUnit.Generated.cs
index db0915187..dc077e4c3 100644
--- a/source/Nuke.Common/Tools/NUnit/NUnit.Generated.cs
+++ b/source/Nuke.Common/Tools/NUnit/NUnit.Generated.cs
@@ -40,9 +40,9 @@ public partial class NUnitTasks
/// NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 3.0, has been completely rewritten with many new features and support for a wide range of .NET platforms.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection NUnit(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection NUnit(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(NUnitPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NUnitLogger);
+ using var process = ProcessTasks.StartProcess(NUnitPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NUnitLogger);
(exitHandler ?? (p => NUnitExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs b/source/Nuke.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs
index 509e2e600..e14484899 100644
--- a/source/Nuke.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs
+++ b/source/Nuke.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs
@@ -38,9 +38,9 @@ public partial class NerdbankGitVersioningTasks
///
/// For more details, visit the official website.
///
- public static IReadOnlyCollection NerdbankGitVersioning(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection NerdbankGitVersioning(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(NerdbankGitVersioningPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NerdbankGitVersioningLogger);
+ using var process = ProcessTasks.StartProcess(NerdbankGitVersioningPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NerdbankGitVersioningLogger);
(exitHandler ?? (p => NerdbankGitVersioningExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Netlify/Netlify.Generated.cs b/source/Nuke.Common/Tools/Netlify/Netlify.Generated.cs
index d9b0f38be..1b9ce797f 100644
--- a/source/Nuke.Common/Tools/Netlify/Netlify.Generated.cs
+++ b/source/Nuke.Common/Tools/Netlify/Netlify.Generated.cs
@@ -40,9 +40,9 @@ public partial class NetlifyTasks
/// Netlify’s command line interface (CLI) lets you configure continuous deployment straight from the command line. You can use Netlify CLI to run a local development server that you can share with others, run a local build and plugins, and deploy your site.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Netlify(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Netlify(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(NetlifyPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NetlifyLogger);
+ using var process = ProcessTasks.StartProcess(NetlifyPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NetlifyLogger);
(exitHandler ?? (p => NetlifyExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Npm/Npm.Generated.cs b/source/Nuke.Common/Tools/Npm/Npm.Generated.cs
index 51aaf6da5..6115efb05 100644
--- a/source/Nuke.Common/Tools/Npm/Npm.Generated.cs
+++ b/source/Nuke.Common/Tools/Npm/Npm.Generated.cs
@@ -40,9 +40,9 @@ public partial class NpmTasks
/// npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently.It is extremely configurable to support a wide variety of use cases. Most commonly, it is used to publish, discover, install, and develop node programs.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Npm(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Npm(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(NpmPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NpmLogger);
+ using var process = ProcessTasks.StartProcess(NpmPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NpmLogger);
(exitHandler ?? (p => NpmExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/NuGet/NuGet.Generated.cs b/source/Nuke.Common/Tools/NuGet/NuGet.Generated.cs
index aa5cd6191..77081f02f 100644
--- a/source/Nuke.Common/Tools/NuGet/NuGet.Generated.cs
+++ b/source/Nuke.Common/Tools/NuGet/NuGet.Generated.cs
@@ -40,9 +40,9 @@ public partial class NuGetTasks
/// The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection NuGet(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection NuGet(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(NuGetPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NuGetLogger);
+ using var process = ProcessTasks.StartProcess(NuGetPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? NuGetLogger);
(exitHandler ?? (p => NuGetExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/OctoVersion/OctoVersion.Generated.cs b/source/Nuke.Common/Tools/OctoVersion/OctoVersion.Generated.cs
index 3a6d1c7cd..a43d55c3e 100644
--- a/source/Nuke.Common/Tools/OctoVersion/OctoVersion.Generated.cs
+++ b/source/Nuke.Common/Tools/OctoVersion/OctoVersion.Generated.cs
@@ -38,9 +38,9 @@ public partial class OctoVersionTasks
///
/// For more details, visit the official website.
///
- public static IReadOnlyCollection OctoVersion(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection OctoVersion(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
{
- using var process = ProcessTasks.StartProcess(OctoVersionPath, ref arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? OctoVersionLogger);
+ using var process = ProcessTasks.StartProcess(OctoVersionPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger ?? OctoVersionLogger);
(exitHandler ?? (p => OctoVersionExitHandler.Invoke(null, p))).Invoke(process.AssertWaitForExit());
return process.Output;
}
diff --git a/source/Nuke.Common/Tools/Octopus/Octopus.Generated.cs b/source/Nuke.Common/Tools/Octopus/Octopus.Generated.cs
index cb36c0d98..cacc537a6 100644
--- a/source/Nuke.Common/Tools/Octopus/Octopus.Generated.cs
+++ b/source/Nuke.Common/Tools/Octopus/Octopus.Generated.cs
@@ -40,9 +40,9 @@ public partial class OctopusTasks
/// Octopus Deploy is an automated deployment server, which you install yourself, much like you would install SQL Server, Team Foundation Server or JetBrains TeamCity. Octopus makes it easy to automate deployment of ASP.NET web applications and Windows Services into development, test and production environments.Along with the Octopus Deploy server, you'll also install a lightweight agent service on each of the machines that you plan to deploy to, for example your web and application servers. We call this the Tentacle agent; the idea being that one Octopus server controls many Tentacles, potentially a lot more than 8! With Octopus and Tentacle, you can easily deploy to your own servers, or cloud services from providers like Amazon Web Services or Microsoft Azure.
/// For more details, visit the official website.
///
- public static IReadOnlyCollection Octopus(ref ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary environmentVariables = null, int? timeout = null, bool? logOutput = null, bool? logInvocation = null, Action logger = null, Action exitHandler = null)
+ public static IReadOnlyCollection Octopus(ArgumentStringHandler arguments, string workingDirectory = null, IReadOnlyDictionary