Updating error message on number conversion to remind uses that Unix shell quoting can come into play. #91

This commit is contained in:
Rob Greene 2023-10-25 18:51:35 -05:00
parent 5da84ae082
commit 745895d553
1 changed files with 17 additions and 8 deletions

View File

@ -19,12 +19,14 @@
*/ */
package io.github.applecommander.acx.converter; package io.github.applecommander.acx.converter;
import com.webcodepro.applecommander.util.Host;
import picocli.CommandLine.ITypeConverter; import picocli.CommandLine.ITypeConverter;
/** Add support for "$801" and "0x801" instead of just decimal like 2049. */ /** Add support for "$801" and "0x801" instead of just decimal like 2049. */
public class IntegerTypeConverter implements ITypeConverter<Integer> { public class IntegerTypeConverter implements ITypeConverter<Integer> {
@Override @Override
public Integer convert(String value) { public Integer convert(String value) {
try {
if (value == null) { if (value == null) {
return null; return null;
} else if (value.startsWith("$")) { } else if (value.startsWith("$")) {
@ -34,5 +36,12 @@ public class IntegerTypeConverter implements ITypeConverter<Integer> {
} else { } else {
return Integer.valueOf(value); return Integer.valueOf(value);
} }
} catch (NumberFormatException ex) {
String msg = ex.getMessage();
if (Host.isLinux() || Host.isMacosx()) {
msg += " (check shell quoting if using '$')";
}
throw new NumberFormatException(msg);
}
} }
} }