29
29
30
30
import io .sloeber .core .Messages ;
31
31
import io .sloeber .core .api .BoardDescription ;
32
+ import io .sloeber .core .api .PasswordManager ;
32
33
import io .sloeber .core .api .SerialManager ;
33
34
import io .sloeber .core .api .SloeberProject ;
34
35
import io .sloeber .core .common .IndexHelper ;
@@ -108,6 +109,7 @@ private class UploadJobWrapper extends Job {
108
109
private ICConfigurationDescription myConfDes ;
109
110
private String myNAmeTag ;
110
111
private IProject myProject ;
112
+ private String myProvidedUploadPort ;
111
113
112
114
public UploadJobWrapper (String name , SloeberProject project , ICConfigurationDescription cConf ) {
113
115
super (name );
@@ -124,6 +126,7 @@ protected IStatus run(IProgressMonitor monitor) {
124
126
125
127
String projectName = myProject .getName ();
126
128
BoardDescription boardDescriptor = mySProject .getBoardDescription (myConfDes .getName (), true );
129
+ myProvidedUploadPort = boardDescriptor .getActualUploadPort ();
127
130
128
131
MessageConsole console = Helpers .findConsole (Messages .Upload_console_name .replace (PROJECT , projectName ));
129
132
console .clearConsole ();
@@ -153,7 +156,7 @@ public void run() {
153
156
highLevelStream .println (message );
154
157
monitor .beginTask (message , 2 );
155
158
try {
156
- WeStoppedTheComPort = SerialManager .StopSerialMonitor (boardDescriptor . getActualUploadPort () );
159
+ WeStoppedTheComPort = SerialManager .StopSerialMonitor (myProvidedUploadPort );
157
160
} catch (Exception e ) {
158
161
ret = new Status (IStatus .WARNING , CORE_PLUGIN_ID , Messages .Upload_Error_com_port , e );
159
162
log (ret );
@@ -171,7 +174,7 @@ public void run() {
171
174
} finally {
172
175
try {
173
176
if (WeStoppedTheComPort ) {
174
- SerialManager .StartSerialMonitor (boardDescriptor . getActualUploadPort () );
177
+ SerialManager .StartSerialMonitor (myProvidedUploadPort );
175
178
}
176
179
} catch (Exception e ) {
177
180
ret = new Status (IStatus .WARNING , CORE_PLUGIN_ID , Messages .Upload_Error_serial_monitor_restart , e );
@@ -185,7 +188,7 @@ public void run() {
185
188
private boolean actualUpload (IProgressMonitor monitor , MessageConsoleStream highStream ,
186
189
MessageConsoleStream outStream , MessageConsoleStream errStream ) {
187
190
BoardDescription boardDescr = mySProject .getBoardDescription (myConfDes .getName (), true );
188
- String uploadPort = boardDescr . getActualUploadPort () ;
191
+ String uploadPort = myProvidedUploadPort ;
189
192
190
193
IEnvironmentVariableManager envManager = CCorePlugin .getDefault ().getBuildEnvironmentManager ();
191
194
IContributedEnvironment contribEnv = envManager .getContributedEnvironment ();
@@ -234,9 +237,10 @@ private boolean actualUpload(IProgressMonitor monitor, MessageConsoleStream high
234
237
* @return the password string or no_pwd_found_in_code if not found
235
238
*/
236
239
@ SuppressWarnings ("nls" )
237
- private String getPasswordFromCode () {
240
+ private String getPasswordFromCode (String defaultPassword ) {
241
+
238
242
String parameter = IndexHelper .findParameterInFunction (myProject .getProject (), "setup" ,
239
- "ArduinoOTA.setPassword" , "no_pwd_found_in_code" );
243
+ "ArduinoOTA.setPassword" , defaultPassword );
240
244
return parameter .replaceAll ("\\ (.*\\ )" , "" ).trim ();
241
245
242
246
}
@@ -251,7 +255,12 @@ private String getOTAPortFromCode() {
251
255
252
256
private void setEnvironmentvarsForAutorizedUpload (IContributedEnvironment contribEnv ,
253
257
ICConfigurationDescription configurationDescription ) {
254
- String passWord = getPasswordFromCode ();
258
+ String defaultPassword = "no_pwd_configured_nor_found_in_code" ; //$NON-NLS-1$
259
+ PasswordManager pwdManager = new PasswordManager ();
260
+ if (pwdManager .setHost (myProvidedUploadPort )) {
261
+ defaultPassword = pwdManager .getPassword ();
262
+ }
263
+ String passWord = getPasswordFromCode (defaultPassword );
255
264
String OTAPort = getOTAPortFromCode ();
256
265
IEnvironmentVariable var = new EnvironmentVariable (ENV_KEY_NETWORK_AUTH , passWord );
257
266
contribEnv .addVariable (var , configurationDescription );
0 commit comments