From e1caaf1c456a3faebb07956254701ead83afe184 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 23 Jan 2019 15:46:41 +0100 Subject: [PATCH] Perform port selection after initializing packages Fix #8400 --- app/src/processing/app/Base.java | 2 ++ .../src/processing/app/helpers/CommandlineParser.java | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index e487231d5..00d64a53e 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -267,6 +267,8 @@ public class Base { splash.splashText(tr("Initializing packages...")); BaseNoGui.initPackages(); + parser.getUploadPort().ifPresent(BaseNoGui::selectSerialPort); + splash.splashText(tr("Preparing boards...")); if (!isCommandLine()) { diff --git a/arduino-core/src/processing/app/helpers/CommandlineParser.java b/arduino-core/src/processing/app/helpers/CommandlineParser.java index 83d34fed7..4c8b3a241 100644 --- a/arduino-core/src/processing/app/helpers/CommandlineParser.java +++ b/arduino-core/src/processing/app/helpers/CommandlineParser.java @@ -41,6 +41,7 @@ public class CommandlineParser { private String getPref; private String boardToInstall; private String libraryToInstall; + private Optional uploadPort = Optional.empty(); private final List filenames = new LinkedList<>(); public CommandlineParser(String[] args) { @@ -141,7 +142,7 @@ public class CommandlineParser { i++; if (i >= args.length) BaseNoGui.showError(null, tr("Argument required for --port"), 3); - BaseNoGui.selectSerialPort(args[i]); + uploadPort = Optional.of(args[i]); if (action == ACTION.GUI) action = ACTION.NOOP; continue; @@ -356,4 +357,8 @@ public class CommandlineParser { public boolean isPreserveTempFiles() { return preserveTempFiles; } + + public Optional getUploadPort() { + return uploadPort; + } }