Skip to content

Commit f9bcf2f

Browse files
authored
pass -v and --log-level to plugin (#175)
* move vars to global * add support for arduino/fwuploader-plugin-helper#10
1 parent 4a0bed3 commit f9bcf2f

File tree

6 files changed

+33
-15
lines changed

6 files changed

+33
-15
lines changed

cli/certificates/flash.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func flashCertificatesWithPlugin(uploader *plugin.FwUploader, certificateURLs, c
153153
return nil, err
154154
}
155155

156-
_, err = uploader.FlashCertificates(commonFlags.Address, commonFlags.Fqbn, certsBundle, stdout, stderr)
156+
_, err = uploader.FlashCertificates(commonFlags.Address, commonFlags.Fqbn, globals.LogLevel, globals.Verbose, certsBundle, stdout, stderr)
157157
return &flasher.FlashResult{
158158
Flasher: &flasher.ExecOutput{
159159
Stdout: stdoutBuffer.String(),

cli/cli.go

+7-9
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ import (
2525

2626
"github.com/arduino/arduino-fwuploader/cli/certificates"
2727
"github.com/arduino/arduino-fwuploader/cli/common"
28+
"github.com/arduino/arduino-fwuploader/cli/feedback"
2829
"github.com/arduino/arduino-fwuploader/cli/firmware"
30+
"github.com/arduino/arduino-fwuploader/cli/globals"
2931
"github.com/arduino/arduino-fwuploader/cli/version"
30-
31-
"github.com/arduino/arduino-fwuploader/cli/feedback"
3232
v "github.com/arduino/arduino-fwuploader/version"
3333
"github.com/mattn/go-colorable"
3434
"github.com/rifflock/lfshook"
@@ -38,10 +38,8 @@ import (
3838

3939
var (
4040
outputFormat string
41-
verbose bool
4241
logFile string
4342
logFormat string
44-
logLevel string
4543
additionalFirmwareURLs []string
4644
additionalPackageURLs []string
4745
)
@@ -64,8 +62,8 @@ func NewCommand() *cobra.Command {
6462
rootCmd.PersistentFlags().StringVar(&outputFormat, "format", "text", "The output format, can be {text|json}.")
6563
rootCmd.PersistentFlags().StringVar(&logFile, "log-file", "", "Path to the file where logs will be written")
6664
rootCmd.PersistentFlags().StringVar(&logFormat, "log-format", "", "The output format for the logs, can be {text|json}.")
67-
rootCmd.PersistentFlags().StringVar(&logLevel, "log-level", "info", "Messages with this level and above will be logged. Valid levels are: trace, debug, info, warn, error, fatal, panic")
68-
rootCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "Print the logs on the standard output.")
65+
rootCmd.PersistentFlags().StringVar(&globals.LogLevel, "log-level", "info", "Messages with this level and above will be logged. Valid levels are: trace, debug, info, warn, error, fatal, panic")
66+
rootCmd.PersistentFlags().BoolVarP(&globals.Verbose, "verbose", "v", false, "Print the logs on the standard output.")
6967
rootCmd.PersistentFlags().StringArrayVarP(&additionalFirmwareURLs, "additional-fw-index", "F", nil, "Additional firmwares index URLs (useful for testing purposes)")
7068
rootCmd.PersistentFlags().StringArrayVarP(&additionalPackageURLs, "additional-packages-index", "P", nil, "Additional packages index URLs (useful for testing purposes)")
7169
return rootCmd
@@ -97,7 +95,7 @@ func preRun(cmd *cobra.Command, args []string) {
9795
feedback.SetFormat(format)
9896

9997
// Prepare logging
100-
if verbose {
98+
if globals.Verbose {
10199
// if we print on stdout, do it in full colors
102100
logrus.SetOutput(colorable.NewColorableStdout())
103101
logrus.SetFormatter(&logrus.TextFormatter{
@@ -128,8 +126,8 @@ func preRun(cmd *cobra.Command, args []string) {
128126
}
129127

130128
// Configure logging filter
131-
if lvl, found := toLogLevel(logLevel); !found {
132-
feedback.Fatal(fmt.Sprintf("Invalid option for --log-level: %s", logLevel), feedback.ErrBadArgument)
129+
if lvl, found := toLogLevel(globals.LogLevel); !found {
130+
feedback.Fatal(fmt.Sprintf("Invalid option for --log-level: %s", globals.LogLevel), feedback.ErrBadArgument)
133131
} else {
134132
logrus.SetLevel(lvl)
135133
}

cli/firmware/flash.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func updateFirmwareWithPlugin(uploader *plugin.FwUploader, fwPath *paths.Path) (
171171
stdout = os.Stdout
172172
stderr = os.Stderr
173173
}
174-
res, err := uploader.FlashFirmware(commonFlags.Address, commonFlags.Fqbn, fwPath, stdout, stderr)
174+
res, err := uploader.FlashFirmware(commonFlags.Address, commonFlags.Fqbn, globals.LogLevel, globals.Verbose, fwPath, stdout, stderr)
175175
if err != nil {
176176
return nil, fmt.Errorf("couldn't update firmware: %s", err)
177177
}

cli/firmware/getversion.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func getVersionWithPlugin(uploader *plugin.FwUploader) *flasher.FlashResult {
8989
stdout = os.Stdout
9090
stderr = os.Stderr
9191
}
92-
res, err := uploader.GetFirmwareVersion(commonFlags.Address, commonFlags.Fqbn, stdout, stderr)
92+
res, err := uploader.GetFirmwareVersion(commonFlags.Address, commonFlags.Fqbn, globals.LogLevel, globals.Verbose, stdout, stderr)
9393
if err != nil {
9494
feedback.Fatal(fmt.Sprintf("Couldn't get firmware version: %s", err), feedback.ErrGeneric)
9595
}

cli/globals/globals.go

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ var (
2929
ModuleFirmwareIndexGZURL = "https://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz"
3030
PluginFirmwareIndexGZURL = "https://downloads.arduino.cc/arduino-fwuploader/boards/plugin_firmware_index.json.gz"
3131
FwUploaderPath = paths.TempDir().Join("fwuploader")
32+
Verbose bool
33+
LogLevel string
3234
)
3335

3436
//go:embed keys/*

plugin/plugin.go

+21-3
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,20 @@ func (uploader *FwUploader) QueryAPIVersion() (int, error) {
8787
}
8888

8989
// GetFirmwareVersion runs the plugin to obtain the version of the installed firmware
90-
func (uploader *FwUploader) GetFirmwareVersion(portAddress, fqbn string, stdout, stderr io.Writer) (*GetFirmwareVersionResult, error) {
90+
func (uploader *FwUploader) GetFirmwareVersion(portAddress, fqbn, LogLevel string, verbose bool, stdout, stderr io.Writer) (*GetFirmwareVersionResult, error) {
9191
args := []string{"firmware", "get-version"}
9292
if portAddress != "" {
9393
args = append(args, "-p", portAddress)
9494
}
9595
if fqbn != "" {
9696
args = append(args, "-b", fqbn)
9797
}
98+
if verbose {
99+
args = append(args, "-v")
100+
}
101+
if LogLevel != "" {
102+
args = append(args, "--log-level", LogLevel)
103+
}
98104
execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...)
99105

100106
res := &GetFirmwareVersionResult{
@@ -132,14 +138,20 @@ type GetFirmwareVersionResult struct {
132138
}
133139

134140
// FlashFirmware runs the plugin to flash the selected firmware
135-
func (uploader *FwUploader) FlashFirmware(portAddress, fqbn string, firmwarePath *paths.Path, stdout, stderr io.Writer) (*FlashFirmwareResult, error) {
141+
func (uploader *FwUploader) FlashFirmware(portAddress, fqbn, LogLevel string, verbose bool, firmwarePath *paths.Path, stdout, stderr io.Writer) (*FlashFirmwareResult, error) {
136142
args := []string{"firmware", "flash", firmwarePath.String()}
137143
if portAddress != "" {
138144
args = append(args, "-p", portAddress)
139145
}
140146
if fqbn != "" {
141147
args = append(args, "-b", fqbn)
142148
}
149+
if verbose {
150+
args = append(args, "-v")
151+
}
152+
if LogLevel != "" {
153+
args = append(args, "--log-level", LogLevel)
154+
}
143155
execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...)
144156

145157
res := &FlashFirmwareResult{
@@ -195,14 +207,20 @@ func (uploader *FwUploader) exec(stdout, stderr io.Writer, args ...string) (*byt
195207
}
196208

197209
// FlashCertificates writes the given certificates bundle in PEM format.
198-
func (uploader *FwUploader) FlashCertificates(portAddress, fqbn string, certsPath *paths.Path, stdout, stderr io.Writer) (*FlashCertificatesResult, error) {
210+
func (uploader *FwUploader) FlashCertificates(portAddress, fqbn, LogLevel string, verbose bool, certsPath *paths.Path, stdout, stderr io.Writer) (*FlashCertificatesResult, error) {
199211
args := []string{"cert", "flash", certsPath.String()}
200212
if portAddress != "" {
201213
args = append(args, "-p", portAddress)
202214
}
203215
if fqbn != "" {
204216
args = append(args, "-b", fqbn)
205217
}
218+
if verbose {
219+
args = append(args, "-v")
220+
}
221+
if LogLevel != "" {
222+
args = append(args, "--log-level", LogLevel)
223+
}
206224
execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...)
207225

208226
res := &FlashCertificatesResult{

0 commit comments

Comments
 (0)