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