2015-12-14 17:39:29 -08: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.
2016-04-28 16:30:32 -07:00
using Microsoft.DotNet.Cli.Utils ;
2016-10-27 18:46:43 -07:00
using NuGet.Frameworks ;
2015-12-14 17:39:29 -08:00
2015-12-30 17:02:59 -08:00
namespace Microsoft.DotNet.Tools.Test.Utilities
2015-12-14 17:39:29 -08:00
{
public sealed class PublishCommand : TestCommand
{
2016-10-27 18:46:43 -07:00
private string _framework ;
private string _output ;
private string _runtime ;
2016-02-16 15:30:39 -08:00
2016-10-27 18:46:43 -07:00
public PublishCommand ( )
2015-12-14 17:39:29 -08:00
: base ( "dotnet" )
{
}
2016-10-27 18:46:43 -07:00
public PublishCommand WithFramework ( string framework )
2016-01-11 13:40:47 -08:00
{
2016-10-27 18:46:43 -07:00
_framework = framework ;
return this ;
2016-01-11 13:40:47 -08:00
}
2016-10-27 18:46:43 -07:00
public PublishCommand WithFramework ( NuGetFramework framework )
2015-12-14 17:39:29 -08:00
{
2016-10-27 18:46:43 -07:00
return WithFramework ( framework . GetShortFolderName ( ) ) ;
2015-12-14 17:39:29 -08:00
}
2016-10-27 18:46:43 -07:00
public PublishCommand WithOutput ( string output )
2015-12-14 17:39:29 -08:00
{
2016-10-27 18:46:43 -07:00
_output = output ;
return this ;
2015-12-14 17:39:29 -08:00
}
2016-10-27 18:46:43 -07:00
public PublishCommand WithRuntime ( string runtime )
2016-03-15 11:50:14 -07:00
{
2016-10-27 18:46:43 -07:00
_runtime = runtime ;
return this ;
2016-03-15 11:50:14 -07:00
}
2016-10-27 18:46:43 -07:00
public override CommandResult Execute ( string args = "" )
2015-12-14 17:39:29 -08:00
{
2016-10-27 18:46:43 -07:00
args = $"publish {BuildArgs()} {args}" ;
return base . Execute ( args ) ;
2016-03-17 13:46:46 -07:00
}
2016-10-27 18:46:43 -07:00
public override CommandResult ExecuteWithCapturedOutput ( string args = "" )
2016-03-17 13:46:46 -07:00
{
2016-10-27 18:46:43 -07:00
args = $"publish {BuildArgs()} {args}" ;
return base . ExecuteWithCapturedOutput ( args ) ;
2015-12-14 17:39:29 -08:00
}
private string BuildArgs ( )
{
2016-10-27 18:46:43 -07:00
return string . Join ( " " ,
FrameworkOption ,
OutputOption ,
RuntimeOption ) ;
2015-12-14 17:39:29 -08:00
}
2016-03-09 11:36:16 -08:00
private string FrameworkOption = > string . IsNullOrEmpty ( _framework ) ? "" : $"-f {_framework}" ;
2016-10-27 18:46:43 -07:00
private string OutputOption = > string . IsNullOrEmpty ( _output ) ? "" : $"-o {_output}" ;
2016-03-09 11:36:16 -08:00
private string RuntimeOption = > string . IsNullOrEmpty ( _runtime ) ? "" : $"-r {_runtime}" ;
2015-12-14 17:39:29 -08:00
}
}