Skip to content

Commit 89c511a

Browse files
committed
more
1 parent 9055cdb commit 89c511a

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

sandbox/GeneratorSandbox/Program.cs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@
1212
var app = ConsoleApp.Create();
1313

1414
// parse immediately
15-
var verbose = app.AddOptionalGlobalOptions<bool>(ref args, "-v|--verbose");
16-
var noColor = app.AddOptionalGlobalOptions<bool>(ref args, "--no-color", "Don't colorize output.");
15+
var verbose = app.AddGlobalOptions<bool>(ref args, "-v|--verbose");
16+
var noColor = app.AddGlobalOptions<bool>(ref args, "--no-color", "Don't colorize output.");
17+
var dryRun = app.AddGlobalOptions<bool>(ref args, "--dry-run");
1718
var prefixOutput = app.AddRequiredGlobalOptions<string>(ref args, "--prefix-output", "Prefix output with level.");
18-
var dryRun = app.AddOptionalGlobalOptions<bool>(ref args, "--dry-run");
1919

2020
app.ConfigureServices(x =>
2121
{
2222
// to use command body
23-
x.AddSingleton<GlobalOptions>(new GlobalOptions(verbose, noColor, prefixOutput, dryRun));
23+
x.AddSingleton<GlobalOptions>(new GlobalOptions(verbose, noColor, dryRun, prefixOutput));
2424

2525
// variable for setup other DI
2626
x.AddLogging(l =>
@@ -37,7 +37,7 @@
3737

3838
app.Run(args);
3939

40-
record GlobalOptions(bool Verbose, bool NoColor, string PrefixOutput, bool DryRun);
40+
record GlobalOptions(bool Verbose, bool NoColor, bool DryRun, string PrefixOutput);
4141

4242

4343
public class Commands
@@ -62,9 +62,17 @@ internal static partial class ConsoleApp
6262
{
6363
internal partial class ConsoleAppBuilder
6464
{
65+
public T AddGlobalOptions<T>(ref string[] args, string name, string description = "", T defaultValue = default(T))
66+
where T : IParsable<T>
67+
{
68+
return default(T);
69+
}
70+
6571
public T AddRequiredGlobalOptions<T>(ref string[] args, [ConstantExpected] string name, [ConstantExpected] string description = "")
6672
where T : IParsable<T>
6773
{
74+
if (typeof(T) == typeof(bool)) throw new ArgumentException();
75+
6876
var aliasCount = name.AsSpan().Count("|") + 1;
6977
if (aliasCount == 1)
7078
{
@@ -87,12 +95,6 @@ public T AddRequiredGlobalOptions<T>(ref string[] args, [ConstantExpected] strin
8795

8896

8997

90-
return default(T);
91-
}
92-
93-
public T AddOptionalGlobalOptions<T>(ref string[] args, string name, string description = "", T defaultValue = default(T))
94-
where T : IParsable<T>
95-
{
9698
return default(T);
9799
}
98100
}

0 commit comments

Comments
 (0)