public static BuildCommand FromArgs(string[] args, string msbuildPath = null) { PerformanceLogEventSource.Log.CreateBuildCommandStart(); var msbuildArgs = new List <string>(); var parser = Parser.Instance; var parseResult = parser.ParseFrom("dotnet build", args); parseResult.ShowHelpOrErrorIfAppropriate(); msbuildArgs.Add($"-consoleloggerparameters:Summary"); if (parseResult.HasOption(BuildCommandParser.NoIncrementalOption)) { msbuildArgs.Add("-target:Rebuild"); } var arguments = parseResult.ValueForArgument <IEnumerable <string> >(BuildCommandParser.SlnOrProjectArgument) ?? Array.Empty <string>(); msbuildArgs.AddRange(parseResult.OptionValuesToBeForwarded(BuildCommandParser.GetCommand())); msbuildArgs.AddRange(arguments); bool noRestore = parseResult.HasOption(BuildCommandParser.NoRestoreOption); BuildCommand command = new BuildCommand( msbuildArgs, noRestore, msbuildPath); PerformanceLogEventSource.Log.CreateBuildCommandStop(); return(command); }
public static BuildCommand FromParseResult(ParseResult parseResult, string msbuildPath = null) { PerformanceLogEventSource.Log.CreateBuildCommandStart(); var msbuildArgs = new List <string>(); parseResult.ShowHelpOrErrorIfAppropriate(); CommonOptions.ValidateSelfContainedOptions(parseResult.HasOption(BuildCommandParser.SelfContainedOption), parseResult.HasOption(BuildCommandParser.NoSelfContainedOption)); msbuildArgs.Add($"-consoleloggerparameters:Summary"); if (parseResult.HasOption(BuildCommandParser.NoIncrementalOption)) { msbuildArgs.Add("-target:Rebuild"); } var arguments = parseResult.GetValueForArgument(BuildCommandParser.SlnOrProjectArgument) ?? Array.Empty <string>(); msbuildArgs.AddRange(parseResult.OptionValuesToBeForwarded(BuildCommandParser.GetCommand())); msbuildArgs.AddRange(arguments); bool noRestore = parseResult.HasOption(BuildCommandParser.NoRestoreOption); BuildCommand command = new BuildCommand( msbuildArgs, noRestore, msbuildPath); PerformanceLogEventSource.Log.CreateBuildCommandStop(); return(command); }
public void Setup() { underTest = new BuildCommandParser(); }