From 3871caecb9eb3c65b95c9911076383a51e01ebca Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Thu, 13 Jul 2023 13:17:20 +0200 Subject: [PATCH] add support for https://github.com/arduino/fwuploader-plugin-helper/pull/10 --- cli/certificates/flash.go | 2 +- cli/firmware/flash.go | 2 +- cli/firmware/getversion.go | 2 +- plugin/plugin.go | 24 +++++++++++++++++++++--- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/cli/certificates/flash.go b/cli/certificates/flash.go index 8fee3e7..1c1c0b5 100644 --- a/cli/certificates/flash.go +++ b/cli/certificates/flash.go @@ -153,7 +153,7 @@ func flashCertificatesWithPlugin(uploader *plugin.FwUploader, certificateURLs, c return nil, err } - _, err = uploader.FlashCertificates(commonFlags.Address, commonFlags.Fqbn, certsBundle, stdout, stderr) + _, err = uploader.FlashCertificates(commonFlags.Address, commonFlags.Fqbn, globals.LogLevel, globals.Verbose, certsBundle, stdout, stderr) return &flasher.FlashResult{ Flasher: &flasher.ExecOutput{ Stdout: stdoutBuffer.String(), diff --git a/cli/firmware/flash.go b/cli/firmware/flash.go index 5c3eca9..b4bd9eb 100644 --- a/cli/firmware/flash.go +++ b/cli/firmware/flash.go @@ -171,7 +171,7 @@ func updateFirmwareWithPlugin(uploader *plugin.FwUploader, fwPath *paths.Path) ( stdout = os.Stdout stderr = os.Stderr } - res, err := uploader.FlashFirmware(commonFlags.Address, commonFlags.Fqbn, fwPath, stdout, stderr) + res, err := uploader.FlashFirmware(commonFlags.Address, commonFlags.Fqbn, globals.LogLevel, globals.Verbose, fwPath, stdout, stderr) if err != nil { return nil, fmt.Errorf("couldn't update firmware: %s", err) } diff --git a/cli/firmware/getversion.go b/cli/firmware/getversion.go index 592173b..16b1ab4 100644 --- a/cli/firmware/getversion.go +++ b/cli/firmware/getversion.go @@ -89,7 +89,7 @@ func getVersionWithPlugin(uploader *plugin.FwUploader) *flasher.FlashResult { stdout = os.Stdout stderr = os.Stderr } - res, err := uploader.GetFirmwareVersion(commonFlags.Address, commonFlags.Fqbn, stdout, stderr) + res, err := uploader.GetFirmwareVersion(commonFlags.Address, commonFlags.Fqbn, globals.LogLevel, globals.Verbose, stdout, stderr) if err != nil { feedback.Fatal(fmt.Sprintf("Couldn't get firmware version: %s", err), feedback.ErrGeneric) } diff --git a/plugin/plugin.go b/plugin/plugin.go index e0a0bba..8681dfa 100644 --- a/plugin/plugin.go +++ b/plugin/plugin.go @@ -84,7 +84,7 @@ func (uploader *FwUploader) QueryAPIVersion() (int, error) { } // GetFirmwareVersion runs the plugin to obtain the version of the installed firmware -func (uploader *FwUploader) GetFirmwareVersion(portAddress, fqbn string, stdout, stderr io.Writer) (*GetFirmwareVersionResult, error) { +func (uploader *FwUploader) GetFirmwareVersion(portAddress, fqbn, LogLevel string, verbose bool, stdout, stderr io.Writer) (*GetFirmwareVersionResult, error) { args := []string{"firmware", "get-version"} if portAddress != "" { args = append(args, "-p", portAddress) @@ -92,6 +92,12 @@ func (uploader *FwUploader) GetFirmwareVersion(portAddress, fqbn string, stdout, if fqbn != "" { args = append(args, "-b", fqbn) } + if verbose { + args = append(args, "-v") + } + if LogLevel != "" { + args = append(args, "--log-level", LogLevel) + } execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...) res := &GetFirmwareVersionResult{ @@ -129,7 +135,7 @@ type GetFirmwareVersionResult struct { } // FlashFirmware runs the plugin to flash the selected firmware -func (uploader *FwUploader) FlashFirmware(portAddress, fqbn string, firmwarePath *paths.Path, stdout, stderr io.Writer) (*FlashFirmwareResult, error) { +func (uploader *FwUploader) FlashFirmware(portAddress, fqbn, LogLevel string, verbose bool, firmwarePath *paths.Path, stdout, stderr io.Writer) (*FlashFirmwareResult, error) { args := []string{"firmware", "flash", firmwarePath.String()} if portAddress != "" { args = append(args, "-p", portAddress) @@ -137,6 +143,12 @@ func (uploader *FwUploader) FlashFirmware(portAddress, fqbn string, firmwarePath if fqbn != "" { args = append(args, "-b", fqbn) } + if verbose { + args = append(args, "-v") + } + if LogLevel != "" { + args = append(args, "--log-level", LogLevel) + } execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...) res := &FlashFirmwareResult{ @@ -192,7 +204,7 @@ func (uploader *FwUploader) exec(stdout, stderr io.Writer, args ...string) (*byt } // FlashCertificates writes the given certificates bundle in PEM format. -func (uploader *FwUploader) FlashCertificates(portAddress, fqbn string, certsPath *paths.Path, stdout, stderr io.Writer) (*FlashCertificatesResult, error) { +func (uploader *FwUploader) FlashCertificates(portAddress, fqbn, LogLevel string, verbose bool, certsPath *paths.Path, stdout, stderr io.Writer) (*FlashCertificatesResult, error) { args := []string{"cert", "flash", certsPath.String()} if portAddress != "" { args = append(args, "-p", portAddress) @@ -200,6 +212,12 @@ func (uploader *FwUploader) FlashCertificates(portAddress, fqbn string, certsPat if fqbn != "" { args = append(args, "-b", fqbn) } + if verbose { + args = append(args, "-v") + } + if LogLevel != "" { + args = append(args, "--log-level", LogLevel) + } execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...) res := &FlashCertificatesResult{