Default boolean arg to false
- In a case where arg is given as boolean and with plain
@ShellOption (user doesn't define defaults), configure
arg not to be mandatory and with default value false.
- This brings this spesific case more close how it behave
in older shell version.
- Having `@ShellOption boolean arg1` it now works as:
my-shell:>e2e reg default-value-boolean3
Hello false
my-shell:>e2e reg default-value-boolean3 --arg1
Hello true
my-shell:>e2e reg default-value-boolean3 --arg1 false
Hello false
my-shell:>e2e reg default-value-boolean3 --arg1 true
Hello true
- Fixes #461
This commit is contained in:
@@ -158,7 +158,13 @@ public class StandardMethodTargetRegistrar implements MethodTargetRegistrar, App
|
||||
optionSpec.defaultValue(so.defaultValue());
|
||||
}
|
||||
if (ObjectUtils.nullSafeEquals(so.defaultValue(), ShellOption.NONE)) {
|
||||
optionSpec.required();
|
||||
if (ClassUtils.isAssignable(boolean.class, parameterType)) {
|
||||
optionSpec.required(false);
|
||||
optionSpec.defaultValue("false");
|
||||
}
|
||||
else {
|
||||
optionSpec.required();
|
||||
}
|
||||
}
|
||||
if (!ClassUtils.isAssignable(NoValueProvider.class, so.valueProvider())) {
|
||||
CompletionResolver completionResolver = ctx -> {
|
||||
|
||||
Reference in New Issue
Block a user