From 92507184bd5c25e89b97eb8c787036f191a5715e Mon Sep 17 00:00:00 2001 From: Peter Huene Date: Tue, 26 Jun 2018 16:34:00 -0700 Subject: [PATCH] Log a verbose message when DOTNET_CLI_HOME is being used. This commit logs a diagnostic message when the `DOTNET_CLI_HOME` variable is used. This enables users to determine where first-run-experience and global tool files are being written to. Fixes #9510. --- .../LocalizableStrings.resx | 3 +++ .../xlf/LocalizableStrings.cs.xlf | 5 +++++ .../xlf/LocalizableStrings.de.xlf | 5 +++++ .../xlf/LocalizableStrings.es.xlf | 5 +++++ .../xlf/LocalizableStrings.fr.xlf | 5 +++++ .../xlf/LocalizableStrings.it.xlf | 5 +++++ .../xlf/LocalizableStrings.ja.xlf | 5 +++++ .../xlf/LocalizableStrings.ko.xlf | 5 +++++ .../xlf/LocalizableStrings.pl.xlf | 5 +++++ .../xlf/LocalizableStrings.pt-BR.xlf | 5 +++++ .../xlf/LocalizableStrings.ru.xlf | 5 +++++ .../xlf/LocalizableStrings.tr.xlf | 5 +++++ .../xlf/LocalizableStrings.zh-Hans.xlf | 5 +++++ .../xlf/LocalizableStrings.zh-Hant.xlf | 5 +++++ src/dotnet/Program.cs | 17 +++++++++++++++++ .../GivenThatDotNetRunsCommands.cs | 18 ++++++++++++++++++ 16 files changed, 103 insertions(+) diff --git a/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx b/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx index 0052c7542..18c0804fd 100644 --- a/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx +++ b/src/Microsoft.DotNet.Cli.Utils/LocalizableStrings.resx @@ -276,4 +276,7 @@ dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf index bad5c47e0..502437409 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf index bf31a852b..45bf69e2e 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf index 9b05c72de..9f0e9b9fc 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf index 413171965..9a352ea90 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf index 89599aa27..f5a466d8c 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf index 90a131afc..680d6eed3 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf index 49f7b2038..91dc78d4a 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet 도구를 설치하세요. install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf index 4f51ed2e5..6411bf6ad 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf index d1ecbe2c9..4aab3f1f9 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf index d744062cb..b16a0bbce 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf index edaf50309..9ae002142 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf index e8c13f337..0c4504c5f 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet 工具安装 -- 全局 {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf index 1330462bd..dc0f356ff 100644 --- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf +++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf @@ -268,6 +268,11 @@ dotnet tool install --global {1} dotnet tool install --global {1} + + Using home directory '{0}' set by the '{1}' environment variable. + Using home directory '{0}' set by the '{1}' environment variable. + + \ No newline at end of file diff --git a/src/dotnet/Program.cs b/src/dotnet/Program.cs index 6e0dbeee1..de1ebb9e6 100644 --- a/src/dotnet/Program.cs +++ b/src/dotnet/Program.cs @@ -149,6 +149,8 @@ namespace Microsoft.DotNet.Cli bool skipFirstRunExperience = environmentProvider.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false); + ReportDotnetHomeUsage(environmentProvider); + topLevelCommandParserResult = new TopLevelCommandParserResult(command); var hasSuperUserAccess = false; if (IsDotnetBeingInvokedFromNativeInstaller(topLevelCommandParserResult)) @@ -229,6 +231,21 @@ namespace Microsoft.DotNet.Cli return exitCode; } + private static void ReportDotnetHomeUsage(IEnvironmentProvider provider) + { + var home = provider.GetEnvironmentVariable(CliFolderPathCalculator.DotnetHomeVariableName); + if (string.IsNullOrEmpty(home)) + { + return; + } + + Reporter.Verbose.WriteLine( + string.Format( + LocalizableStrings.DotnetCliHomeUsed, + home, + CliFolderPathCalculator.DotnetHomeVariableName)); + } + private static bool IsDotnetBeingInvokedFromNativeInstaller(TopLevelCommandParserResult parseResult) { return parseResult.Command == "internal-reportinstallsuccess"; diff --git a/test/dotnet.Tests/GivenThatDotNetRunsCommands.cs b/test/dotnet.Tests/GivenThatDotNetRunsCommands.cs index c76400e56..e6ea890c9 100644 --- a/test/dotnet.Tests/GivenThatDotNetRunsCommands.cs +++ b/test/dotnet.Tests/GivenThatDotNetRunsCommands.cs @@ -49,5 +49,23 @@ namespace Microsoft.DotNet.Tests .And .HaveStdErrContaining(CliFolderPathCalculator.DotnetHomeVariableName); } + + [Fact] + public void GivenASpecifiedDotnetCliHomeVariableItPrintsUsageMessage() + { + var home = Path.Combine(TempRoot.Root, Path.GetRandomFileName()); + + new TestCommand("dotnet") + .WithEnvironmentVariable(CliFolderPathCalculator.DotnetHomeVariableName, home) + .ExecuteWithCapturedOutput("-d help") + .Should() + .Pass() + .And + .HaveStdOutContaining( + string.Format( + LocalizableStrings.DotnetCliHomeUsed, + home, + CliFolderPathCalculator.DotnetHomeVariableName)); + } } }