dotnet-installer/test/Microsoft.DotNet.Tools.Tests.Utilities/Commands/PublishCommand.cs

70 lines
1.9 KiB
C#
Raw Normal View History

2015-12-15 01:39:29 +00:00
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using Microsoft.DotNet.Cli.Utils;
using NuGet.Frameworks;
2015-12-15 01:39:29 +00:00
namespace Microsoft.DotNet.Tools.Test.Utilities
2015-12-15 01:39:29 +00:00
{
public sealed class PublishCommand : TestCommand
{
private string _framework;
private string _output;
private string _runtime;
2016-02-16 23:30:39 +00:00
public PublishCommand()
2015-12-15 01:39:29 +00:00
: base("dotnet")
{
}
public PublishCommand WithFramework(string framework)
{
_framework = framework;
return this;
}
public PublishCommand WithFramework(NuGetFramework framework)
2015-12-15 01:39:29 +00:00
{
return WithFramework(framework.GetShortFolderName());
2015-12-15 01:39:29 +00:00
}
public PublishCommand WithOutput(string output)
2015-12-15 01:39:29 +00:00
{
_output = output;
return this;
2015-12-15 01:39:29 +00:00
}
public PublishCommand WithRuntime(string runtime)
{
_runtime = runtime;
return this;
}
public override CommandResult Execute(string args = "")
2015-12-15 01:39:29 +00:00
{
args = $"publish {BuildArgs()} {args}";
return base.Execute(args);
}
public override CommandResult ExecuteWithCapturedOutput(string args = "")
{
args = $"publish {BuildArgs()} {args}";
return base.ExecuteWithCapturedOutput(args);
2015-12-15 01:39:29 +00:00
}
private string BuildArgs()
{
return string.Join(" ",
FrameworkOption,
OutputOption,
RuntimeOption);
2015-12-15 01:39:29 +00:00
}
private string FrameworkOption => string.IsNullOrEmpty(_framework) ? "" : $"-f {_framework}";
private string OutputOption => string.IsNullOrEmpty(_output) ? "" : $"-o {_output}";
private string RuntimeOption => string.IsNullOrEmpty(_runtime) ? "" : $"-r {_runtime}";
2015-12-15 01:39:29 +00:00
}
}