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; } } }