public void Process(BuildMessageEventArgs args) { if (args == null) { return; } var message = args.Message; if (string.IsNullOrEmpty(message)) { return; } if (args.SenderName == "BinaryLogger") { var parameter = ItemGroupParser.ParsePropertyOrItemList(message, string.Empty, stringTable); construction.Build.AddChild(parameter); return; } if (message.StartsWith(Strings.ItemGroupIncludeMessagePrefix)) { AddItemGroup(args, Strings.ItemGroupIncludeMessagePrefix, new AddItem()); return; } if (message.StartsWith(Strings.OutputItemsMessagePrefix)) { var task = GetTask(args); //this.construction.Build.Statistics.ReportOutputItemMessage(task, message); var folder = task.GetOrCreateNodeWithName <Folder>("OutputItems"); var parameter = ItemGroupParser.ParsePropertyOrItemList(message, Strings.OutputItemsMessagePrefix, stringTable); folder.AddChild(parameter); return; } if (message.StartsWith(Strings.OutputPropertyMessagePrefix)) { var task = GetTask(args); var folder = task.GetOrCreateNodeWithName <Folder>("OutputProperties"); var parameter = ItemGroupParser.ParsePropertyOrItemList(message, Strings.OutputPropertyMessagePrefix, stringTable); folder.AddChild(parameter); return; } if (message.StartsWith(Strings.ItemGroupRemoveMessagePrefix)) { AddItemGroup(args, Strings.ItemGroupRemoveMessagePrefix, new RemoveItem()); return; } if (message.StartsWith(Strings.PropertyGroupMessagePrefix)) { AddPropertyGroup(args, Strings.PropertyGroupMessagePrefix); return; } if (message.StartsWith(Strings.TaskParameterMessagePrefix)) { var task = GetTask(args); if (IgnoreParameters(task)) { return; } //this.construction.Build.Statistics.ReportTaskParameterMessage(task, message); var folder = task.GetOrCreateNodeWithName <Folder>(Strings.Parameters); var parameter = ItemGroupParser.ParsePropertyOrItemList(message, Strings.TaskParameterMessagePrefix, stringTable); folder.AddChild(parameter); return; } // A task from assembly message (parses out the task name and assembly path). var match = Strings.UsingTask(message); if (match.Success) { construction.SetTaskAssembly( stringTable.Intern(match.Groups["task"].Value), stringTable.Intern(match.Groups["assembly"].Value)); return; } if (args is TaskCommandLineEventArgs taskArgs) { if (AddCommandLine(taskArgs)) { return; } } // Just the generic log message or something we currently don't handle in the object model. AddMessage(args, message); }
public void Process(BuildMessageEventArgs args) { if (args == null) { return; } var message = args.Message; if (string.IsNullOrEmpty(message)) { return; } switch (message[0]) { case 'A': if (message.StartsWith(ItemGroupIncludeMessagePrefix)) { AddItemGroup(args, ItemGroupIncludeMessagePrefix, new AddItem()); return; } break; case 'O': if (message.StartsWith(OutputItemsMessagePrefix)) { var task = GetTask(args); var folder = task.GetOrCreateNodeWithName <Folder>("OutputItems"); var parameter = ItemGroupParser.ParsePropertyOrItemList(message, OutputItemsMessagePrefix, stringTable); folder.AddChild(parameter); return; } if (message.StartsWith(OutputPropertyMessagePrefix)) { var task = GetTask(args); var folder = task.GetOrCreateNodeWithName <Folder>("OutputProperties"); var parameter = ItemGroupParser.ParsePropertyOrItemList(message, OutputPropertyMessagePrefix, stringTable); folder.AddChild(parameter); return; } break; case 'R': if (message.StartsWith(ItemGroupRemoveMessagePrefix)) { AddItemGroup(args, ItemGroupRemoveMessagePrefix, new RemoveItem()); return; } break; case 'S': if (message.StartsWith(PropertyGroupMessagePrefix)) { AddPropertyGroup(args, PropertyGroupMessagePrefix); return; } break; case 'T': if (message.StartsWith(TaskParameterMessagePrefix)) { var task = GetTask(args); var folder = task.GetOrCreateNodeWithName <Folder>("Parameters"); var parameter = ItemGroupParser.ParsePropertyOrItemList(message, TaskParameterMessagePrefix, stringTable); folder.AddChild(parameter); return; } break; case 'U': // A task from assembly message (parses out the task name and assembly path). var match = usingTaskRegex.Match(message); if (match.Success) { construction.SetTaskAssembly( stringTable.Intern(match.Groups["task"].Value), stringTable.Intern(match.Groups["assembly"].Value)); return; } break; default: break; } if (args is TaskCommandLineEventArgs taskArgs) { AddCommandLine(taskArgs); return; } // Just the generic log message or something we currently don't handle in the object model. AddMessage(args, message); }
public void Process(BuildMessageEventArgs args) { // Task Input / Outputs if (args.Message.StartsWith(TaskParameterMessagePrefix)) { var task = GetTask(args); var folder = task.GetOrCreateNodeWithName <Folder>("Parameters"); var parameter = ItemGroupParser.ParsePropertyOrItemList(args.Message, TaskParameterMessagePrefix, stringTable); folder.AddChild(parameter); } else if (args.Message.StartsWith(OutputItemsMessagePrefix)) { var task = GetTask(args); var folder = task.GetOrCreateNodeWithName <Folder>("OutputItems"); var parameter = ItemGroupParser.ParsePropertyOrItemList(args.Message, OutputItemsMessagePrefix, stringTable); folder.AddChild(parameter); } else if (args.Message.StartsWith(OutputPropertyMessagePrefix)) { var task = GetTask(args); var folder = task.GetOrCreateNodeWithName <Folder>("OutputProperties"); var parameter = ItemGroupParser.ParsePropertyOrItemList(args.Message, OutputPropertyMessagePrefix, stringTable); folder.AddChild(parameter); } // Item / Property groups else if (args.Message.StartsWith(PropertyGroupMessagePrefix)) { AddPropertyGroup(args, PropertyGroupMessagePrefix); } else if (args.Message.StartsWith(ItemGroupIncludeMessagePrefix)) { AddItemGroup(args, ItemGroupIncludeMessagePrefix, new AddItem()); } else if (args.Message.StartsWith(ItemGroupRemoveMessagePrefix)) { AddItemGroup(args, ItemGroupRemoveMessagePrefix, new RemoveItem()); } else { // This was command line arguments for task var taskArgs = args as TaskCommandLineEventArgs; if (taskArgs != null) { AddCommandLine(taskArgs); return; } // A task from assembly message (parses out the task name and assembly path). const string taskAssemblyPattern = "Using \"(?<task>.+)\" task from (assembly|the task factory) \"(?<assembly>.+)\"\\."; var match = Regex.Match(args.Message, taskAssemblyPattern); if (match.Success) { construction.SetTaskAssembly( stringTable.Intern(match.Groups["task"].Value), stringTable.Intern(match.Groups["assembly"].Value)); } else { // Just the generic log message or something we currently don't handle in the object model. AddMessage(args, args.Message); } } }