2016-07-15 08:31:50 -07: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.
|
2017-01-25 10:34:50 -08:00
|
|
|
|
using System;
|
2017-01-25 17:14:07 -08:00
|
|
|
|
using System.Collections.Generic;
|
2017-01-24 21:59:18 -08:00
|
|
|
|
using System.Linq;
|
2016-07-15 08:31:50 -07:00
|
|
|
|
|
|
|
|
|
using Microsoft.Build.Framework;
|
2016-06-28 18:19:42 -05:00
|
|
|
|
using Microsoft.Build.Utilities;
|
|
|
|
|
|
2016-07-26 00:29:59 -04:00
|
|
|
|
using Microsoft.DotNet.Cli.Build.Framework;
|
|
|
|
|
|
2016-06-28 18:19:42 -05:00
|
|
|
|
namespace Microsoft.DotNet.Cli.Build
|
|
|
|
|
{
|
|
|
|
|
public abstract class DotNetTool : ToolTask
|
|
|
|
|
{
|
|
|
|
|
public DotNetTool()
|
|
|
|
|
{
|
2017-01-25 17:14:07 -08:00
|
|
|
|
// var ev2r = new EnvironmentFilter()
|
|
|
|
|
// .GetEnvironmentVariableNamesToRemove();
|
|
|
|
|
|
|
|
|
|
// foreach (var ev in ev2r)
|
|
|
|
|
// {
|
|
|
|
|
// Console.WriteLine($"EV {ev}");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// EnvironmentVariables = ev2r
|
|
|
|
|
// .Select(e => $"{e}=")
|
|
|
|
|
// .ToArray();
|
|
|
|
|
|
|
|
|
|
// foreach (var ev in EnvironmentVariables)
|
|
|
|
|
// {
|
|
|
|
|
// Console.WriteLine($"EV {ev}");
|
|
|
|
|
// }
|
2016-06-28 18:19:42 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected abstract string Command { get; }
|
|
|
|
|
|
|
|
|
|
protected abstract string Args { get; }
|
|
|
|
|
|
2017-01-25 17:14:07 -08:00
|
|
|
|
protected override Dictionary<string, string> EnvironmentOverride
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return new EnvironmentFilter()
|
|
|
|
|
.GetEnvironmentVariableNamesToRemove()
|
|
|
|
|
.ToDictionary(e => e, e => (string)null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-06-28 18:19:42 -05:00
|
|
|
|
public string WorkingDirectory { get; set; }
|
|
|
|
|
|
|
|
|
|
protected override string ToolName
|
|
|
|
|
{
|
2016-07-26 00:29:59 -04:00
|
|
|
|
get { return $"dotnet{Constants.ExeSuffix}"; }
|
2016-06-28 18:19:42 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override MessageImportance StandardOutputLoggingImportance
|
|
|
|
|
{
|
|
|
|
|
get { return MessageImportance.High; } // or else the output doesn't get logged by default
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override string GenerateFullPathToTool()
|
|
|
|
|
{
|
|
|
|
|
string path = ToolPath;
|
|
|
|
|
|
|
|
|
|
// if ToolPath was not provided by the MSBuild script
|
|
|
|
|
if (string.IsNullOrEmpty(path))
|
|
|
|
|
{
|
2016-06-29 02:41:38 -05:00
|
|
|
|
Log.LogError($"Could not find the Path to {ToolName}");
|
2016-06-28 18:19:42 -05:00
|
|
|
|
|
|
|
|
|
return string.Empty;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return path;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override string GetWorkingDirectory()
|
|
|
|
|
{
|
2017-01-25 17:14:07 -08:00
|
|
|
|
|
|
|
|
|
Log.LogMessage(MessageImportance.High, "OVERRIDING ");
|
|
|
|
|
|
|
|
|
|
foreach (var ev in EnvironmentVariables)
|
|
|
|
|
{
|
|
|
|
|
Log.LogMessage(MessageImportance.High, $"{ev}");
|
|
|
|
|
}
|
|
|
|
|
|
2016-06-28 18:19:42 -05:00
|
|
|
|
return WorkingDirectory ?? base.GetWorkingDirectory();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override string GenerateCommandLineCommands()
|
|
|
|
|
{
|
|
|
|
|
return $"{Command} {Args}";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void LogToolCommand(string message)
|
|
|
|
|
{
|
|
|
|
|
base.LogToolCommand($"{GetWorkingDirectory()}> {message}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|