Merge branch 'master' into version-props
This commit is contained in:
commit
e644058c0e
17 changed files with 98 additions and 48 deletions
|
@ -4,8 +4,8 @@
|
|||
<CLI_SharedFrameworkVersion>2.0.0-beta-001791-00</CLI_SharedFrameworkVersion>
|
||||
<CLI_MSBuild_Version>15.2.0-preview-000047-02</CLI_MSBuild_Version>
|
||||
<CLI_Roslyn_Version>2.0.0-rc4-61325-08</CLI_Roslyn_Version>
|
||||
<CLI_NETSDK_Version>2.0.0-alpha-20170322-1</CLI_NETSDK_Version>
|
||||
<CLI_NuGet_Version>4.3.0-beta1-2342</CLI_NuGet_Version>
|
||||
<CLI_NETSDK_Version>2.0.0-alpha-20170323-1</CLI_NETSDK_Version>
|
||||
<CLI_NuGet_Version>4.3.0-beta1-2418</CLI_NuGet_Version>
|
||||
<CLI_WEBSDK_Version>1.0.0-alpha-20170130-3-281</CLI_WEBSDK_Version>
|
||||
<CLI_TestPlatform_Version>15.1.0-preview-20170316-05</CLI_TestPlatform_Version>
|
||||
<SharedFrameworkVersion>$(CLI_SharedFrameworkVersion)</SharedFrameworkVersion>
|
||||
|
|
|
@ -29,9 +29,16 @@ namespace Microsoft.DotNet.Archive
|
|||
string line = $"{value.Phase} {progress}%";
|
||||
if (value.Phase == _currentPhase)
|
||||
{
|
||||
Console.Write(new string('\b', _lastLineLength));
|
||||
if (Console.IsOutputRedirected)
|
||||
{
|
||||
Console.Write($"...{progress}%");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.Write(new string('\b', _lastLineLength));
|
||||
Console.Write(line);
|
||||
}
|
||||
|
||||
Console.Write(line);
|
||||
_lastLineLength = line.Length;
|
||||
|
||||
if (progress == 100)
|
||||
|
|
|
@ -207,7 +207,7 @@ namespace Microsoft.DotNet.Cli.CommandLine
|
|||
throw new CommandParsingException(
|
||||
command,
|
||||
"Required command missing",
|
||||
isRequireSubCommandMissing: true);
|
||||
isRequiredSubCommandMissing: true);
|
||||
}
|
||||
|
||||
return command.Invoke();
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Microsoft.DotNet.Cli.CommandLine
|
|||
{
|
||||
internal class CommandParsingException : Exception
|
||||
{
|
||||
private readonly bool _isRequireSubCommandMissing;
|
||||
private readonly bool _isRequiredSubCommandMissing;
|
||||
|
||||
public CommandParsingException(
|
||||
string message,
|
||||
|
@ -21,11 +21,11 @@ namespace Microsoft.DotNet.Cli.CommandLine
|
|||
public CommandParsingException(
|
||||
CommandLineApplication command,
|
||||
string message,
|
||||
bool isRequireSubCommandMissing = false)
|
||||
bool isRequiredSubCommandMissing = false)
|
||||
: this(message)
|
||||
{
|
||||
Command = command;
|
||||
_isRequireSubCommandMissing = isRequireSubCommandMissing;
|
||||
_isRequiredSubCommandMissing = isRequiredSubCommandMissing;
|
||||
}
|
||||
|
||||
public CommandLineApplication Command { get; }
|
||||
|
@ -36,7 +36,7 @@ namespace Microsoft.DotNet.Cli.CommandLine
|
|||
{
|
||||
get
|
||||
{
|
||||
return _isRequireSubCommandMissing
|
||||
return _isRequiredSubCommandMissing
|
||||
? CommonLocalizableStrings.RequiredCommandNotPassed
|
||||
: base.Message;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ namespace Microsoft.DotNet.Cli
|
|||
|
||||
ParseResult = parser.ParseFrom($"dotnet {CommandName}", args);
|
||||
|
||||
ParseResult.ShowHelpIfRequested();
|
||||
|
||||
var subcommandName = ParseResult.Command().Name;
|
||||
|
||||
try
|
||||
|
|
|
@ -13,6 +13,19 @@ namespace Microsoft.DotNet.Cli
|
|||
Console.WriteLine(parseResult.Command().HelpView());
|
||||
|
||||
public static void ShowHelpOrErrorIfAppropriate(this ParseResult parseResult)
|
||||
{
|
||||
parseResult.ShowHelpIfRequested();
|
||||
|
||||
if (parseResult.Errors.Any())
|
||||
{
|
||||
throw new CommandParsingException(
|
||||
message: string.Join(Environment.NewLine,
|
||||
parseResult.Errors.Select(e => e.Message)),
|
||||
helpText: parseResult?.Command()?.HelpView());
|
||||
}
|
||||
}
|
||||
|
||||
public static void ShowHelpIfRequested(this ParseResult parseResult)
|
||||
{
|
||||
var appliedCommand = parseResult.AppliedCommand();
|
||||
|
||||
|
@ -23,14 +36,6 @@ namespace Microsoft.DotNet.Cli
|
|||
// NOTE: this is a temporary stage in refactoring toward the ClicCommandLineParser being used at the CLI entry point.
|
||||
throw new HelpException(parseResult.Command().HelpView());
|
||||
}
|
||||
|
||||
if (parseResult.Errors.Any())
|
||||
{
|
||||
throw new CommandParsingException(
|
||||
message: string.Join(Environment.NewLine,
|
||||
parseResult.Errors.Select(e => e.Message)),
|
||||
helpText: parseResult?.Command()?.HelpView());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,9 +2,7 @@
|
|||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.DotNet.Cli.CommandLine;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
|
||||
|
@ -28,20 +26,14 @@ namespace Microsoft.DotNet.Cli
|
|||
|
||||
var suggestions = Suggestions(complete);
|
||||
|
||||
var log = new StringBuilder();
|
||||
log.AppendLine($"args: {string.Join(" ", args.Select(a => $"\"{a}\""))}");
|
||||
log.AppendLine("diagram: " + result.Diagram());
|
||||
File.WriteAllText("parse.log", log.ToString());
|
||||
|
||||
foreach (var suggestion in suggestions)
|
||||
{
|
||||
Console.WriteLine(suggestion);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception)
|
||||
{
|
||||
File.WriteAllText("dotnet completion exception.log", e.ToString());
|
||||
throw;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace Microsoft.DotNet.Cli
|
|||
Console.WriteLine();
|
||||
foreach (var error in result.Errors)
|
||||
{
|
||||
Console.WriteLine($"[{error?.Option?.Name ?? "???"}] {error.Message}");
|
||||
Console.WriteLine($"[{error?.Option?.Name ?? "???"}] {error?.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<PackageReference Include="Microsoft.Win32.Registry" Version="4.3.0" />
|
||||
<PackageReference Include="Microsoft.Build" Version="$(CLI_MSBuild_Version)" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="$(PlatformAbstractionsVersion)" />
|
||||
<PackageReference Include="Microsoft.DotNet.Cli.CommandLine" Version="0.1.0-alpha-115" />
|
||||
<PackageReference Include="Microsoft.DotNet.Cli.CommandLine" Version="0.1.0-alpha-120" />
|
||||
<PackageReference Include="Microsoft.TemplateEngine.Abstractions" Version="$(TemplateEngineVersion)" />
|
||||
<PackageReference Include="Microsoft.TemplateEngine.Cli" Version="$(TemplateEngineVersion)" />
|
||||
<PackageReference Include="Microsoft.TemplateEngine.Orchestrator.RunnableProjects" Version="$(TemplateEngineVersion)" />
|
||||
|
|
|
@ -19,12 +19,12 @@ namespace Microsoft.DotNet.Cli.Add.Reference.Tests
|
|||
Usage: dotnet add <PROJECT> reference [options] <args>
|
||||
|
||||
Arguments:
|
||||
<PROJECT> The project file to operate on. If a file is not specified, the command will search the current directory for one.
|
||||
<args> Project to project references to add
|
||||
<PROJECT> The project file to operate on. If a file is not specified, the command will search the current directory for one.
|
||||
<args> Project to project references to add
|
||||
|
||||
Options:
|
||||
-h, --help Show help information
|
||||
-f, --framework <FRAMEWORK> Add reference only when targeting a specific framework
|
||||
-h, --help Show help information
|
||||
-f, --framework <FRAMEWORK> Add reference only when targeting a specific framework
|
||||
";
|
||||
|
||||
const string FrameworkNet451Arg = "-f net451";
|
||||
|
|
|
@ -18,10 +18,10 @@ namespace Microsoft.DotNet.Cli.List.Reference.Tests
|
|||
Usage: dotnet list <PROJECT> reference [options]
|
||||
|
||||
Arguments:
|
||||
<PROJECT> The project file to operate on. If a file is not specified, the command will search the current directory for one.
|
||||
<PROJECT> The project file to operate on. If a file is not specified, the command will search the current directory for one.
|
||||
|
||||
Options:
|
||||
-h, --help Show help information
|
||||
-h, --help Show help information
|
||||
";
|
||||
|
||||
const string FrameworkNet451Arg = "-f net451";
|
||||
|
|
|
@ -18,12 +18,12 @@ namespace Microsoft.DotNet.Cli.Remove.Reference.Tests
|
|||
Usage: dotnet remove <PROJECT> reference [options] <args>
|
||||
|
||||
Arguments:
|
||||
<PROJECT> The project file to operate on. If a file is not specified, the command will search the current directory for one.
|
||||
<args> Project to project references to remove
|
||||
<PROJECT> The project file to operate on. If a file is not specified, the command will search the current directory for one.
|
||||
<args> Project to project references to remove
|
||||
|
||||
Options:
|
||||
-h, --help Show help information
|
||||
-f, --framework <FRAMEWORK> Remove reference only when targeting a specific framework
|
||||
-h, --help Show help information
|
||||
-f, --framework <FRAMEWORK> Remove reference only when targeting a specific framework
|
||||
";
|
||||
|
||||
const string FrameworkNet451Arg = "-f net451";
|
||||
|
|
|
@ -20,11 +20,11 @@ namespace Microsoft.DotNet.Cli.Sln.Add.Tests
|
|||
Usage: dotnet sln <SLN_FILE> add [options] <args>
|
||||
|
||||
Arguments:
|
||||
<SLN_FILE> Solution file to operate on. If not specified, the command will search the current directory for one.
|
||||
<args> Add one or more specified projects to the solution.
|
||||
<SLN_FILE> Solution file to operate on. If not specified, the command will search the current directory for one.
|
||||
<args> Add one or more specified projects to the solution.
|
||||
|
||||
Options:
|
||||
-h, --help Show help information
|
||||
-h, --help Show help information
|
||||
";
|
||||
private ITestOutputHelper _output;
|
||||
|
||||
|
|
|
@ -18,10 +18,10 @@ namespace Microsoft.DotNet.Cli.Sln.List.Tests
|
|||
Usage: dotnet sln <SLN_FILE> list [options]
|
||||
|
||||
Arguments:
|
||||
<SLN_FILE> Solution file to operate on. If not specified, the command will search the current directory for one.
|
||||
<SLN_FILE> Solution file to operate on. If not specified, the command will search the current directory for one.
|
||||
|
||||
Options:
|
||||
-h, --help Show help information
|
||||
-h, --help Show help information
|
||||
";
|
||||
|
||||
[Theory]
|
||||
|
|
|
@ -18,11 +18,11 @@ namespace Microsoft.DotNet.Cli.Sln.Remove.Tests
|
|||
Usage: dotnet sln <SLN_FILE> remove [options] <args>
|
||||
|
||||
Arguments:
|
||||
<SLN_FILE> Solution file to operate on. If not specified, the command will search the current directory for one.
|
||||
<args> Remove the specified project(s) from the solution. The project is not impacted.
|
||||
<SLN_FILE> Solution file to operate on. If not specified, the command will search the current directory for one.
|
||||
<args> Remove the specified project(s) from the solution. The project is not impacted.
|
||||
|
||||
Options:
|
||||
-h, --help Show help information
|
||||
-h, --help Show help information
|
||||
";
|
||||
|
||||
private const string ExpectedSlnContentsAfterRemove = @"
|
||||
|
|
44
test/dotnet.Tests/GivenThatTheUserRequestsHelp.cs
Normal file
44
test/dotnet.Tests/GivenThatTheUserRequestsHelp.cs
Normal file
|
@ -0,0 +1,44 @@
|
|||
// 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.
|
||||
|
||||
using System;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Xunit;
|
||||
|
||||
namespace dotnet.Tests
|
||||
{
|
||||
public class GivenThatTheUserRequestsHelp
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("-h")]
|
||||
[InlineData("add -h")]
|
||||
[InlineData("add package -h")]
|
||||
[InlineData("add reference -h")]
|
||||
[InlineData("build -h")]
|
||||
[InlineData("cache -h")]
|
||||
[InlineData("clean -h")]
|
||||
[InlineData("list -h")]
|
||||
[InlineData("migrate -h")]
|
||||
[InlineData("msbuild -h")]
|
||||
[InlineData("new -h")]
|
||||
[InlineData("nuget -h")]
|
||||
[InlineData("pack -h")]
|
||||
[InlineData("publish -h")]
|
||||
[InlineData("remove -h")]
|
||||
[InlineData("restore -h")]
|
||||
[InlineData("run -h")]
|
||||
[InlineData("sln -h")]
|
||||
[InlineData("sln add -h")]
|
||||
[InlineData("sln list -h")]
|
||||
[InlineData("sln remove -h")]
|
||||
[InlineData("test -h")]
|
||||
public void TheResponseIsNotAnError(string commandLine)
|
||||
{
|
||||
var result = new DotnetCommand()
|
||||
.ExecuteWithCapturedOutput(commandLine);
|
||||
|
||||
result.ExitCode.Should().Be(0);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -42,6 +42,6 @@
|
|||
<PackageReference Include="xunit" Version="2.2.0-beta4-build3444" />
|
||||
<PackageReference Include="xunit.netcore.extensions" Version="1.0.0-prerelease-00206" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="$(PlatformAbstractionsVersion)" />
|
||||
<PackageReference Include="Microsoft.DotNet.Cli.CommandLine" Version="0.1.0-alpha-115" />
|
||||
<PackageReference Include="Microsoft.DotNet.Cli.CommandLine" Version="0.1.0-alpha-120" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
Loading…
Reference in a new issue