Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnkit Jain <radical@corewars.org>2011-02-27 22:11:07 +0300
committerAnkit Jain <radical@corewars.org>2011-02-28 00:40:15 +0300
commit35044c74a25b2c3c983ceca94f5163fa309a495c (patch)
tree8efadd096a523f53a2c370f154b3f039fbc3f1ce /mcs/class/Microsoft.Build.Utilities
parent78a9231511e1d2b60df9499a2db7fb4ce0fcbed4 (diff)
[xbuild] ToolTask - add missing api
* Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolTask.cs (GetProcessStartInfo): Add missing api. This allows more control over the execution of the tool.
Diffstat (limited to 'mcs/class/Microsoft.Build.Utilities')
-rw-r--r--mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolTask.cs26
1 files changed, 16 insertions, 10 deletions
diff --git a/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolTask.cs b/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolTask.cs
index c2ccff4c5c6..4e88792a649 100644
--- a/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolTask.cs
+++ b/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolTask.cs
@@ -114,22 +114,16 @@ namespace Microsoft.Build.Utilities
toolOutput = new StringBuilder ();
try {
- string arguments = commandLineCommands;
+ string responseFileSwitch = String.Empty;
if (!String.IsNullOrEmpty (responseFileCommands)) {
responseFileName = Path.GetTempFileName ();
File.WriteAllText (responseFileName, responseFileCommands);
- arguments = arguments + " " + GetResponseFileSwitch (responseFileName);
+ responseFileSwitch = GetResponseFileSwitch (responseFileName);
}
+ var pinfo = GetProcessStartInfo (pathToTool, commandLineCommands, responseFileSwitch);
LogToolCommand (String.Format ("Tool {0} execution started with arguments: {1} {2}",
- pathToTool, commandLineCommands, responseFileCommands));
-
- ProcessStartInfo pinfo = new ProcessStartInfo (pathToTool, arguments);
- pinfo.WorkingDirectory = GetWorkingDirectory () ?? Environment.CurrentDirectory;
-
- pinfo.UseShellExecute = false;
- pinfo.RedirectStandardOutput = true;
- pinfo.RedirectStandardError = true;
+ pinfo.FileName, commandLineCommands, responseFileCommands));
var pendingLineFragmentOutput = new StringBuilder ();
var pendingLineFragmentError = new StringBuilder ();
@@ -298,6 +292,18 @@ namespace Microsoft.Build.Utilities
return String.Format ("@{0}", responseFilePath);
}
+ protected virtual ProcessStartInfo GetProcessStartInfo (string pathToTool, string commandLineCommands, string responseFileSwitch)
+ {
+ var pinfo = new ProcessStartInfo (pathToTool, String.Format ("{0} {1}", commandLineCommands, responseFileSwitch));
+
+ pinfo.WorkingDirectory = GetWorkingDirectory () ?? Environment.CurrentDirectory;
+ pinfo.UseShellExecute = false;
+ pinfo.RedirectStandardOutput = true;
+ pinfo.RedirectStandardError = true;
+
+ return pinfo;
+ }
+
protected virtual bool HandleTaskExecutionErrors ()
{
if (!Log.HasLoggedErrors && exitCode != 0)