Skip to content

Commit ad9f3ff

Browse files
cleanup certificate flash logic to support only plugins
1 parent 9494a4e commit ad9f3ff

File tree

1 file changed

+5
-75
lines changed

1 file changed

+5
-75
lines changed

cli/certificates/flash.go

+5-75
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,13 @@ import (
2424
"fmt"
2525
"io"
2626
"os"
27-
"strings"
28-
"time"
2927

3028
"github.com/arduino/arduino-fwuploader/certificates"
3129
"github.com/arduino/arduino-fwuploader/cli/arguments"
3230
"github.com/arduino/arduino-fwuploader/cli/common"
3331
"github.com/arduino/arduino-fwuploader/cli/feedback"
3432
"github.com/arduino/arduino-fwuploader/cli/globals"
3533
"github.com/arduino/arduino-fwuploader/flasher"
36-
"github.com/arduino/arduino-fwuploader/indexes/download"
37-
"github.com/arduino/arduino-fwuploader/indexes/firmwareindex"
3834
"github.com/arduino/arduino-fwuploader/plugin"
3935
"github.com/arduino/go-paths-helper"
4036
"github.com/sirupsen/logrus"
@@ -81,25 +77,19 @@ func runFlash(certificateURLs, certificatePaths []string) {
8177
board := common.GetBoard(firmwareIndex, commonFlags.Fqbn)
8278
uploadToolDir := common.DownloadRequiredToolsForBoard(packageIndex, board)
8379

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)
9483
}
9584

85+
res, flashErr := flashCertificates(uploader, certificateURLs, certificatePaths)
9686
feedback.PrintResult(res)
9787
if flashErr != nil {
9888
os.Exit(int(feedback.ErrGeneric))
9989
}
10090
}
10191

102-
func flashCertificatesWithPlugin(uploader *plugin.FwUploader, certificateURLs, certificatePaths []string) (*flasher.FlashResult, error) {
92+
func flashCertificates(uploader *plugin.FwUploader, certificateURLs, certificatePaths []string) (*flasher.FlashResult, error) {
10393
tmp, err := paths.MkTempDir("", "")
10494
if err != nil {
10595
return nil, err
@@ -161,63 +151,3 @@ func flashCertificatesWithPlugin(uploader *plugin.FwUploader, certificateURLs, c
161151
},
162152
}, err
163153
}
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

Comments
 (0)