@@ -531,19 +531,20 @@ func runProgramAction(pm *packagemanager.PackageManager,
531531 }
532532
533533 // Run recipes for upload
534+ toolEnv := pm .GetEnvVarsForSpawnedProcess ()
534535 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 {
536537 return & arduino.FailedUploadError {Message : tr ("Failed chip erase" ), Cause : err }
537538 }
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 {
539540 return & arduino.FailedUploadError {Message : tr ("Failed to burn bootloader" ), Cause : err }
540541 }
541542 } 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 {
543544 return & arduino.FailedUploadError {Message : tr ("Failed programming" ), Cause : err }
544545 }
545546 } 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 {
547548 return & arduino.FailedUploadError {Message : tr ("Failed uploading" ), Cause : err }
548549 }
549550 }
@@ -552,7 +553,7 @@ func runProgramAction(pm *packagemanager.PackageManager,
552553 return nil
553554}
554555
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 {
556557 recipe , ok := props .GetOk (recipeID )
557558 if ! ok {
558559 return fmt .Errorf (tr ("recipe not found '%s'" ), recipeID )
@@ -577,7 +578,7 @@ func runTool(recipeID string, props *properties.Map, outStream, errStream io.Wri
577578 if dryRun {
578579 return nil
579580 }
580- cmd , err := executils .NewProcess (nil , cmdArgs ... )
581+ cmd , err := executils .NewProcess (toolEnv , cmdArgs ... )
581582 if err != nil {
582583 return fmt .Errorf (tr ("cannot execute upload tool: %s" ), err )
583584 }
0 commit comments