diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 99eb474..4ee3a41 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -11,5 +11,5 @@ jobs: name: Checkout - uses: actions/setup-dotnet@v1 with: - dotnet-version: '3.1.100' + dotnet-version: '3.1.412' - run: dotnet test diff --git a/src/AzureSign.Core/AzureSign.Core.csproj b/src/AzureSign.Core/AzureSign.Core.csproj index d8d2c92..9bd55c1 100644 --- a/src/AzureSign.Core/AzureSign.Core.csproj +++ b/src/AzureSign.Core/AzureSign.Core.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/AzureSignTool/AzureSignTool.csproj b/src/AzureSignTool/AzureSignTool.csproj index 5d76e1b..e7cba5f 100644 --- a/src/AzureSignTool/AzureSignTool.csproj +++ b/src/AzureSignTool/AzureSignTool.csproj @@ -10,11 +10,11 @@ - - + + - - + + diff --git a/src/AzureSignTool/Program.cs b/src/AzureSignTool/Program.cs index e4f9d0f..fc42c4e 100644 --- a/src/AzureSignTool/Program.cs +++ b/src/AzureSignTool/Program.cs @@ -15,18 +15,13 @@ public static int Main(string[] args) Console.Error.WriteLine("Azure Sign Tool is only supported on Windows."); return E_PLATFORMNOTSUPPORTED; } - var application = new CommandLineApplication(); + var application = new CommandLineApplication(); application.ValueParsers.Add(new HashAlgorithmNameValueParser()); - application.ShowHint(); application.Command("sign", config => { config.Description = "Signs a file."; - config.Conventions.UseDefaultConventions(); - }); - application.Command(string.Empty, config => { - application.ShowHelp(); - application.ShowHint(); }); + application.Conventions.UseDefaultConventions(); application.UnrecognizedArgumentHandling = UnrecognizedArgumentHandling.StopParsingAndCollect; return application.Execute(args); } diff --git a/src/AzureSignTool/SignApplication.cs b/src/AzureSignTool/SignApplication.cs new file mode 100644 index 0000000..cf5f762 --- /dev/null +++ b/src/AzureSignTool/SignApplication.cs @@ -0,0 +1,20 @@ +using McMaster.Extensions.CommandLineUtils; + +namespace AzureSignTool +{ + internal sealed class SignApplication + { + private readonly CommandLineApplication _current; + + public SignApplication(CommandLineApplication current) + { + _current = current; + } + + public int OnExecute() + { + _current.ShowHelp(); + return 1; + } + } +} diff --git a/test/AzureSignTool.Tests/HelpTests.cs b/test/AzureSignTool.Tests/HelpTests.cs index 420ef99..e22018f 100644 --- a/test/AzureSignTool.Tests/HelpTests.cs +++ b/test/AzureSignTool.Tests/HelpTests.cs @@ -16,7 +16,7 @@ public void BlankInputShouldShowHelpOutput() }); Assert.Contains("Usage:", StdOut); - Assert.Equal(0, ExitCode); + Assert.Equal(1, ExitCode); } [Fact] @@ -26,7 +26,7 @@ public void BlankInputForSignCommandShouldShowHelpOutput() return Program.Main(new string[] { "sign" }); }); - Assert.Contains("Usage:", StdOut); + Assert.Contains("--help", StdOut); Assert.NotEqual(0, ExitCode); }