@@ -217,8 +217,12 @@ public static TCommand Add<TCommand>(
217217 if ( CommandArgument . IsArgumentPrototype ( prototype ) )
218218 throw new ArgumentException ( "Environment variable fallback is only supported for options, not positional arguments." , nameof ( prototype ) ) ;
219219
220- var option = new ActionOption ( prototype , description , 1 , delegate ( OptionValueCollection v ) { action ( v [ 0 ] ) ; } , hidden ) ;
221- ConfigureOptionEnvironment ( option , envVar , envVarDelimiter ) ;
220+ ArgumentException . ThrowIfNullOrWhiteSpace ( envVar ) ;
221+ var option = new ActionOption ( prototype , description , 1 , delegate ( OptionValueCollection v ) { action ( v [ 0 ] ) ; } , hidden )
222+ {
223+ EnvironmentVariable = envVar ,
224+ EnvironmentVariableDelimiter = envVarDelimiter
225+ } ;
222226 command . Add ( option ) ;
223227 return command ;
224228 }
@@ -260,11 +264,12 @@ public static TCommand Add<TCommand>(
260264 return command ;
261265 }
262266
263- var option = new ActionOption ( prototype , description , 1 , delegate ( OptionValueCollection v ) { action ( v [ 0 ] ) ; } , hidden , validate ) ;
264- if ( ! string . IsNullOrWhiteSpace ( envVar ) )
267+ var normalizedEnvVar = string . IsNullOrWhiteSpace ( envVar ) ? null : envVar ;
268+ var option = new ActionOption ( prototype , description , 1 , delegate ( OptionValueCollection v ) { action ( v [ 0 ] ) ; } , hidden , validate )
265269 {
266- ConfigureOptionEnvironment ( option , envVar , envVarDelimiter ) ;
267- }
270+ EnvironmentVariable = normalizedEnvVar ,
271+ EnvironmentVariableDelimiter = normalizedEnvVar is null ? null : envVarDelimiter
272+ } ;
268273 command . Add ( option ) ;
269274 return command ;
270275 }
@@ -747,11 +752,12 @@ private static TCommand AddTypedAction<TCommand, T>(
747752 return command ;
748753 }
749754
750- var option = new ActionOption < T > ( prototype , description , action , validate , hidden ) ;
751- if ( ! string . IsNullOrWhiteSpace ( envVar ) )
755+ var normalizedEnvVar = string . IsNullOrWhiteSpace ( envVar ) ? null : envVar ;
756+ var option = new ActionOption < T > ( prototype , description , action , validate , hidden )
752757 {
753- ConfigureOptionEnvironment ( option , envVar , envVarDelimiter ) ;
754- }
758+ EnvironmentVariable = normalizedEnvVar ,
759+ EnvironmentVariableDelimiter = normalizedEnvVar is null ? null : envVarDelimiter
760+ } ;
755761
756762 command . Add ( option ) ;
757763 return command ;
@@ -781,11 +787,12 @@ private static TCommand AddTypedList<TCommand, T>(
781787 return command ;
782788 }
783789
784- var option = new ActionOption < T > ( prototype , description , list . Add , validate , hidden ) ;
785- if ( ! string . IsNullOrWhiteSpace ( envVar ) )
790+ var normalizedEnvVar = string . IsNullOrWhiteSpace ( envVar ) ? null : envVar ;
791+ var option = new ActionOption < T > ( prototype , description , list . Add , validate , hidden )
786792 {
787- ConfigureOptionEnvironment ( option , envVar , envVarDelimiter ) ;
788- }
793+ EnvironmentVariable = normalizedEnvVar ,
794+ EnvironmentVariableDelimiter = normalizedEnvVar is null ? null : envVarDelimiter
795+ } ;
789796
790797 command . Add ( option ) ;
791798 return command ;
@@ -800,14 +807,6 @@ private static void EnsurePrototypeIsNotRemainder(string prototype, bool isListB
800807 }
801808 }
802809
803- private static void ConfigureOptionEnvironment ( Option option , string envVar , char ? envVarDelimiter )
804- {
805- ArgumentNullException . ThrowIfNull ( option ) ;
806- ArgumentException . ThrowIfNullOrWhiteSpace ( envVar ) ;
807- option . EnvironmentVariable = envVar ;
808- option . EnvironmentVariableDelimiter = envVarDelimiter ;
809- }
810-
811810 private sealed class ActionOption < T > : Option
812811 where T : ISpanParsable < T >
813812 {
0 commit comments