Move the help command it it's own class.
Also fix the help command to work with intrinsic commands.
This commit is contained in:
parent
f7cba8a630
commit
67b4012e45
4 changed files with 107 additions and 63 deletions
65
src/dotnet/commands/dotnet-help/HelpCommand.cs
Normal file
65
src/dotnet/commands/dotnet-help/HelpCommand.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
// 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.Reflection;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.Help
|
||||
{
|
||||
public class HelpCommand
|
||||
{
|
||||
private const string ProductLongName = ".NET Command Line Tools";
|
||||
private const string UsageText = @"Usage: dotnet [common-options] [command] [arguments]
|
||||
|
||||
Arguments:
|
||||
[command] The command to execute
|
||||
[arguments] Arguments to pass to the command
|
||||
|
||||
Common Options (passed before the command):
|
||||
-v|--verbose Enable verbose output
|
||||
--version Display .NET CLI Version Info
|
||||
|
||||
Common Commands:
|
||||
new Initialize a basic .NET project
|
||||
restore Restore dependencies specified in the .NET project
|
||||
build Builds a .NET project
|
||||
publish Publishes a .NET project for deployment (including the runtime)
|
||||
run Compiles and immediately executes a .NET project
|
||||
repl Launch an interactive session (read, eval, print, loop)
|
||||
pack Creates a NuGet package";
|
||||
private static readonly string ProductVersion = GetProductVersion();
|
||||
|
||||
private static string GetProductVersion()
|
||||
{
|
||||
var attr = typeof(HelpCommand).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>();
|
||||
return attr?.InformationalVersion;
|
||||
}
|
||||
|
||||
public static int Run(string[] args)
|
||||
{
|
||||
if (args.Length == 0)
|
||||
{
|
||||
PrintHelp();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Cli.Program.Main(new[] { args[0], "--help" });
|
||||
}
|
||||
}
|
||||
|
||||
public static void PrintHelp()
|
||||
{
|
||||
PrintVersionHeader();
|
||||
Reporter.Output.WriteLine(UsageText);
|
||||
}
|
||||
|
||||
public static void PrintVersionHeader()
|
||||
{
|
||||
var versionString = string.IsNullOrEmpty(ProductVersion) ?
|
||||
string.Empty :
|
||||
$" ({ProductVersion})";
|
||||
Reporter.Output.WriteLine(ProductLongName + versionString);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in a new issue