From dd807a6d70bcf3dd98bc2b518ab94df3a20d9cdb Mon Sep 17 00:00:00 2001 From: Meir Blachman Date: Fri, 5 Oct 2018 10:03:31 +0300 Subject: [PATCH] using Microsoft.Extensions.CommandLineUtils for blazor-cli --- .../Commands/ServeCommand.cs | 21 ++++++++++++++ .../Microsoft.AspNetCore.Blazor.Cli.csproj | 1 + .../Program.cs | 28 ++++++++++--------- 3 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 src/Microsoft.AspNetCore.Blazor.Cli/Commands/ServeCommand.cs diff --git a/src/Microsoft.AspNetCore.Blazor.Cli/Commands/ServeCommand.cs b/src/Microsoft.AspNetCore.Blazor.Cli/Commands/ServeCommand.cs new file mode 100644 index 0000000000..ce16353a74 --- /dev/null +++ b/src/Microsoft.AspNetCore.Blazor.Cli/Commands/ServeCommand.cs @@ -0,0 +1,21 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.CommandLineUtils; +using System; +using System.Diagnostics; +using System.Text.RegularExpressions; + +namespace Microsoft.AspNetCore.Blazor.Cli.Commands +{ + class ServeCommand + { + public static void Command(CommandLineApplication command) + { + var remainingArgs = command.RemainingArguments.ToArray(); + + Server.Program.BuildWebHost(remainingArgs).Run(); + } + } +} diff --git a/src/Microsoft.AspNetCore.Blazor.Cli/Microsoft.AspNetCore.Blazor.Cli.csproj b/src/Microsoft.AspNetCore.Blazor.Cli/Microsoft.AspNetCore.Blazor.Cli.csproj index d1655c13c6..6b4eba1512 100644 --- a/src/Microsoft.AspNetCore.Blazor.Cli/Microsoft.AspNetCore.Blazor.Cli.csproj +++ b/src/Microsoft.AspNetCore.Blazor.Cli/Microsoft.AspNetCore.Blazor.Cli.csproj @@ -11,6 +11,7 @@ + diff --git a/src/Microsoft.AspNetCore.Blazor.Cli/Program.cs b/src/Microsoft.AspNetCore.Blazor.Cli/Program.cs index e8cf351a7a..288715da4b 100644 --- a/src/Microsoft.AspNetCore.Blazor.Cli/Program.cs +++ b/src/Microsoft.AspNetCore.Blazor.Cli/Program.cs @@ -4,6 +4,8 @@ using Microsoft.AspNetCore.Hosting; using System; using System.Linq; +using Microsoft.Extensions.CommandLineUtils; +using Microsoft.AspNetCore.Blazor.Cli.Commands; namespace Microsoft.AspNetCore.Blazor.Cli { @@ -11,22 +13,22 @@ namespace Microsoft.AspNetCore.Blazor.Cli { static int Main(string[] args) { - if (args.Length == 0) + var app = new CommandLineApplication { - Console.WriteLine("Usage: dotnet blazor "); - return 1; + Name = "blazor-cli" + }; + app.HelpOption("-?|-h|--help"); + + app.Command("serve", ServeCommand.Command); + + if (args.Length > 0) + { + return app.Execute(args); } - - var command = args[0]; - var remainingArgs = args.Skip(1).ToArray(); - - switch (command.ToLowerInvariant()) + else { - case "serve": - Server.Program.BuildWebHost(remainingArgs).Run(); - return 0; - default: - throw new InvalidOperationException($"Unknown command: {command}"); + app.ShowHelp(); + return 0; } } }