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