@@ -531,19 +531,20 @@ func runProgramAction(pm *packagemanager.PackageManager,
531
531
}
532
532
533
533
// Run recipes for upload
534
+ toolEnv := pm .GetEnvVarsForSpawnedProcess ()
534
535
if burnBootloader {
535
- if err := runTool ("erase.pattern" , uploadProperties , outStream , errStream , verbose , dryRun ); err != nil {
536
+ if err := runTool ("erase.pattern" , uploadProperties , outStream , errStream , verbose , dryRun , toolEnv ); err != nil {
536
537
return & arduino.FailedUploadError {Message : tr ("Failed chip erase" ), Cause : err }
537
538
}
538
- if err := runTool ("bootloader.pattern" , uploadProperties , outStream , errStream , verbose , dryRun ); err != nil {
539
+ if err := runTool ("bootloader.pattern" , uploadProperties , outStream , errStream , verbose , dryRun , toolEnv ); err != nil {
539
540
return & arduino.FailedUploadError {Message : tr ("Failed to burn bootloader" ), Cause : err }
540
541
}
541
542
} else if programmer != nil {
542
- if err := runTool ("program.pattern" , uploadProperties , outStream , errStream , verbose , dryRun ); err != nil {
543
+ if err := runTool ("program.pattern" , uploadProperties , outStream , errStream , verbose , dryRun , toolEnv ); err != nil {
543
544
return & arduino.FailedUploadError {Message : tr ("Failed programming" ), Cause : err }
544
545
}
545
546
} else {
546
- if err := runTool ("upload.pattern" , uploadProperties , outStream , errStream , verbose , dryRun ); err != nil {
547
+ if err := runTool ("upload.pattern" , uploadProperties , outStream , errStream , verbose , dryRun , toolEnv ); err != nil {
547
548
return & arduino.FailedUploadError {Message : tr ("Failed uploading" ), Cause : err }
548
549
}
549
550
}
@@ -552,7 +553,7 @@ func runProgramAction(pm *packagemanager.PackageManager,
552
553
return nil
553
554
}
554
555
555
- func runTool (recipeID string , props * properties.Map , outStream , errStream io.Writer , verbose bool , dryRun bool ) error {
556
+ func runTool (recipeID string , props * properties.Map , outStream , errStream io.Writer , verbose bool , dryRun bool , toolEnv [] string ) error {
556
557
recipe , ok := props .GetOk (recipeID )
557
558
if ! ok {
558
559
return fmt .Errorf (tr ("recipe not found '%s'" ), recipeID )
@@ -577,7 +578,7 @@ func runTool(recipeID string, props *properties.Map, outStream, errStream io.Wri
577
578
if dryRun {
578
579
return nil
579
580
}
580
- cmd , err := executils .NewProcess (nil , cmdArgs ... )
581
+ cmd , err := executils .NewProcess (toolEnv , cmdArgs ... )
581
582
if err != nil {
582
583
return fmt .Errorf (tr ("cannot execute upload tool: %s" ), err )
583
584
}
0 commit comments