@@ -24,17 +24,13 @@ import (
24
24
"fmt"
25
25
"io"
26
26
"os"
27
- "strings"
28
- "time"
29
27
30
28
"github.com/arduino/arduino-fwuploader/certificates"
31
29
"github.com/arduino/arduino-fwuploader/cli/arguments"
32
30
"github.com/arduino/arduino-fwuploader/cli/common"
33
31
"github.com/arduino/arduino-fwuploader/cli/feedback"
34
32
"github.com/arduino/arduino-fwuploader/cli/globals"
35
33
"github.com/arduino/arduino-fwuploader/flasher"
36
- "github.com/arduino/arduino-fwuploader/indexes/download"
37
- "github.com/arduino/arduino-fwuploader/indexes/firmwareindex"
38
34
"github.com/arduino/arduino-fwuploader/plugin"
39
35
"github.com/arduino/go-paths-helper"
40
36
"github.com/sirupsen/logrus"
@@ -81,25 +77,19 @@ func runFlash(certificateURLs, certificatePaths []string) {
81
77
board := common .GetBoard (firmwareIndex , commonFlags .Fqbn )
82
78
uploadToolDir := common .DownloadRequiredToolsForBoard (packageIndex , board )
83
79
84
- var res * flasher.FlashResult
85
- var flashErr error
86
- if ! board .IsPlugin () {
87
- res , flashErr = flashCertificates (board , uploadToolDir , certificateURLs , certificatePaths )
88
- } else {
89
- uploader , err := plugin .NewFWUploaderPlugin (uploadToolDir )
90
- if err != nil {
91
- feedback .Fatal (fmt .Sprintf ("Could not open uploader plugin: %s" , err ), feedback .ErrGeneric )
92
- }
93
- res , flashErr = flashCertificatesWithPlugin (uploader , certificateURLs , certificatePaths )
80
+ uploader , err := plugin .NewFWUploaderPlugin (uploadToolDir )
81
+ if err != nil {
82
+ feedback .Fatal (fmt .Sprintf ("Could not open uploader plugin: %s" , err ), feedback .ErrGeneric )
94
83
}
95
84
85
+ res , flashErr := flashCertificates (uploader , certificateURLs , certificatePaths )
96
86
feedback .PrintResult (res )
97
87
if flashErr != nil {
98
88
os .Exit (int (feedback .ErrGeneric ))
99
89
}
100
90
}
101
91
102
- func flashCertificatesWithPlugin (uploader * plugin.FwUploader , certificateURLs , certificatePaths []string ) (* flasher.FlashResult , error ) {
92
+ func flashCertificates (uploader * plugin.FwUploader , certificateURLs , certificatePaths []string ) (* flasher.FlashResult , error ) {
103
93
tmp , err := paths .MkTempDir ("" , "" )
104
94
if err != nil {
105
95
return nil , err
@@ -161,63 +151,3 @@ func flashCertificatesWithPlugin(uploader *plugin.FwUploader, certificateURLs, c
161
151
},
162
152
}, err
163
153
}
164
-
165
- func flashCertificates (board * firmwareindex.IndexBoard , uploadToolDir * paths.Path , certificateURLs , certificatePaths []string ) (* flasher.FlashResult , error ) {
166
- loaderSketchPath , err := download .DownloadSketch (board .LoaderSketch )
167
- if err != nil {
168
- feedback .Fatal (fmt .Sprintf ("Error downloading loader sketch from %s: %s" , board .LoaderSketch .URL , err ), feedback .ErrGeneric )
169
- }
170
- logrus .Debugf ("loader sketch downloaded in %s" , loaderSketchPath .String ())
171
-
172
- loaderSketch := strings .ReplaceAll (loaderSketchPath .String (), loaderSketchPath .Ext (), "" )
173
- programmerOut , programmerErr , err := common .FlashSketch (board , loaderSketch , uploadToolDir , commonFlags .Address )
174
- if err != nil {
175
- feedback .FatalError (err , feedback .ErrGeneric )
176
- }
177
-
178
- // Wait a bit after flashing the loader sketch for the board to become
179
- // available again.
180
- logrus .Debug ("sleeping for 3 sec" )
181
- time .Sleep (3 * time .Second )
182
-
183
- // Get flasher depending on which module to use
184
- var f flasher.Flasher
185
- moduleName := board .Module
186
-
187
- // This matches the baudrate used in the FirmwareUpdater.ino sketch
188
- const baudRate = 1000000
189
- switch moduleName {
190
- default :
191
- err = fmt .Errorf ("unknown module: %s" , moduleName )
192
- }
193
- if err != nil {
194
- feedback .Fatal (fmt .Sprintf ("Error during certificates flashing: %s" , err ), feedback .ErrGeneric )
195
- }
196
- defer f .Close ()
197
-
198
- // now flash the certificate
199
- certFileList := paths .NewPathList (certificatePaths ... )
200
- flasherOut := new (bytes.Buffer )
201
- flasherErr := new (bytes.Buffer )
202
- if feedback .GetFormat () == feedback .JSON {
203
- err = f .FlashCertificates (& certFileList , certificateURLs , flasherOut )
204
- if err != nil {
205
- flasherErr .Write ([]byte (fmt .Sprintf ("Error during certificates flashing: %s" , err )))
206
- }
207
- } else {
208
- err = f .FlashCertificates (& certFileList , certificateURLs , io .MultiWriter (flasherOut , os .Stdout ))
209
- if err != nil {
210
- os .Stderr .Write ([]byte (fmt .Sprintf ("Error during certificates flashing: %s" , err )))
211
- }
212
- }
213
- return & flasher.FlashResult {
214
- Programmer : & flasher.ExecOutput {
215
- Stdout : programmerOut .String (),
216
- Stderr : programmerErr .String (),
217
- },
218
- Flasher : & flasher.ExecOutput {
219
- Stdout : flasherOut .String (),
220
- Stderr : flasherErr .String (),
221
- },
222
- }, err
223
- }
0 commit comments