diff --git a/app/cli-acx/src/main/java/io/github/applecommander/acx/converter/IntegerTypeConverter.java b/app/cli-acx/src/main/java/io/github/applecommander/acx/converter/IntegerTypeConverter.java index 347a2a3..dcd2273 100644 --- a/app/cli-acx/src/main/java/io/github/applecommander/acx/converter/IntegerTypeConverter.java +++ b/app/cli-acx/src/main/java/io/github/applecommander/acx/converter/IntegerTypeConverter.java @@ -19,20 +19,29 @@ */ package io.github.applecommander.acx.converter; +import com.webcodepro.applecommander.util.Host; import picocli.CommandLine.ITypeConverter; /** Add support for "$801" and "0x801" instead of just decimal like 2049. */ public class IntegerTypeConverter implements ITypeConverter { @Override public Integer convert(String value) { - if (value == null) { - return null; - } else if (value.startsWith("$")) { - return Integer.valueOf(value.substring(1), 16); - } else if (value.startsWith("0x") || value.startsWith("0X")) { - return Integer.valueOf(value.substring(2), 16); - } else { - return Integer.valueOf(value); + try { + if (value == null) { + return null; + } else if (value.startsWith("$")) { + return Integer.valueOf(value.substring(1), 16); + } else if (value.startsWith("0x") || value.startsWith("0X")) { + return Integer.valueOf(value.substring(2), 16); + } else { + 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); } } } \ No newline at end of file