diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index be15eefd17e..8f74b3a1049 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -41,6 +41,9 @@ import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.lang3.StringUtils; + +import com.github.zafarkhaja.semver.Version; + import processing.app.debug.TargetBoard; import processing.app.debug.TargetPackage; import processing.app.debug.TargetPlatform; @@ -71,6 +74,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static processing.app.I18n.format; import static processing.app.I18n.tr; @@ -305,7 +309,12 @@ public Base(String[] args) throws Exception { ContributedPlatform selected = null; if (boardToInstallParts.length == 3) { - selected = indexer.getIndex().findPlatform(boardToInstallParts[0], boardToInstallParts[1], VersionHelper.valueOf(boardToInstallParts[2]).toString()); + Optional version = VersionHelper.valueOf(boardToInstallParts[2]); + if (!version.isPresent()) { + System.out.println(format(tr("Invalid version {0}"), boardToInstallParts[2])); + System.exit(1); + } + selected = indexer.getIndex().findPlatform(boardToInstallParts[0], boardToInstallParts[1], version.get().toString()); } else if (boardToInstallParts.length == 2) { List platformsByName = indexer.getIndex().findPlatforms(boardToInstallParts[0], boardToInstallParts[1]); Collections.sort(platformsByName, new DownloadableContributionVersionComparator()); @@ -346,7 +355,12 @@ public Base(String[] args) throws Exception { ContributedLibrary selected = null; if (libraryToInstallParts.length == 2) { - selected = indexer.getIndex().find(libraryToInstallParts[0], VersionHelper.valueOf(libraryToInstallParts[1]).toString()); + Optional version = VersionHelper.valueOf(libraryToInstallParts[1]); + if (!version.isPresent()) { + System.out.println(format(tr("Invalid version {0}"), libraryToInstallParts[1])); + System.exit(1); + } + selected = indexer.getIndex().find(libraryToInstallParts[0], version.get().toString()); } else if (libraryToInstallParts.length == 1) { List librariesByName = indexer.getIndex().find(libraryToInstallParts[0]); Collections.sort(librariesByName, new DownloadableContributionVersionComparator());