From ffd87ae20bdf5d67569525127d2d13601fda8646 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 28 Mar 2022 10:18:54 +0200 Subject: [PATCH 1/4] Fixed some staticcheck warnings commands/core/search_test.go:24:2: package "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" is being imported more than once (ST1019) commands/core/search_test.go:25:2: other import of "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" i18n/cmd/po/parser.go:34:2: should check returned error before deferring file.Close() (SA5001) i18n/cmd/po/parser.go:105:48: cutset contains duplicate characters (SA1024) --- commands/core/search_test.go | 45 ++++++++++++++++++------------------ i18n/cmd/po/parser.go | 5 ++-- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/commands/core/search_test.go b/commands/core/search_test.go index 5e262fbb23e..4e69ef4aae6 100644 --- a/commands/core/search_test.go +++ b/commands/core/search_test.go @@ -21,7 +21,6 @@ import ( "github.com/arduino/arduino-cli/cli/instance" "github.com/arduino/arduino-cli/configuration" - "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/require" @@ -53,7 +52,7 @@ func TestPlatformSearch(t *testing.T) { require.NotNil(t, res) require.Len(t, res.SearchOutput, 2) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.5", @@ -61,9 +60,9 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.6", @@ -71,7 +70,7 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) res, stat = PlatformSearch(&rpc.PlatformSearchRequest{ @@ -82,7 +81,7 @@ func TestPlatformSearch(t *testing.T) { require.Nil(t, stat) require.NotNil(t, res) require.Len(t, res.SearchOutput, 1) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.6", @@ -90,7 +89,7 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) // Search the Package Maintainer @@ -102,7 +101,7 @@ func TestPlatformSearch(t *testing.T) { require.Nil(t, stat) require.NotNil(t, res) require.Len(t, res.SearchOutput, 2) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.5", @@ -110,9 +109,9 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.6", @@ -120,7 +119,7 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) // Search using the Package name @@ -132,7 +131,7 @@ func TestPlatformSearch(t *testing.T) { require.Nil(t, stat) require.NotNil(t, res) require.Len(t, res.SearchOutput, 2) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.5", @@ -140,9 +139,9 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.6", @@ -150,7 +149,7 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) // Search using the Platform name @@ -162,7 +161,7 @@ func TestPlatformSearch(t *testing.T) { require.Nil(t, stat) require.NotNil(t, res) require.Len(t, res.SearchOutput, 2) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.5", @@ -170,9 +169,9 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "Retrokits-RK002:arm", Installed: "", Latest: "1.0.6", @@ -180,7 +179,7 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Retrokits (www.retrokits.com)", Website: "https://www.retrokits.com", Email: "info@retrokits.com", - Boards: []*commands.Board{{Name: "RK002"}}, + Boards: []*rpc.Board{{Name: "RK002"}}, }) // Search using a board name @@ -192,7 +191,7 @@ func TestPlatformSearch(t *testing.T) { require.Nil(t, stat) require.NotNil(t, res) require.Len(t, res.SearchOutput, 1) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "arduino:avr", Installed: "", Latest: "1.8.3", @@ -200,7 +199,7 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Arduino", Website: "https://www.arduino.cc/", Email: "packages@arduino.cc", - Boards: []*commands.Board{ + Boards: []*rpc.Board{ {Name: "Arduino Yún"}, {Name: "Arduino Uno"}, {Name: "Arduino Uno WiFi"}, @@ -238,7 +237,7 @@ func TestPlatformSearch(t *testing.T) { require.Nil(t, stat) require.NotNil(t, res) require.Len(t, res.SearchOutput, 1) - require.Contains(t, res.SearchOutput, &commands.Platform{ + require.Contains(t, res.SearchOutput, &rpc.Platform{ Id: "arduino:avr", Installed: "", Latest: "1.8.3", @@ -246,7 +245,7 @@ func TestPlatformSearch(t *testing.T) { Maintainer: "Arduino", Website: "https://www.arduino.cc/", Email: "packages@arduino.cc", - Boards: []*commands.Board{ + Boards: []*rpc.Board{ {Name: "Arduino Yún"}, {Name: "Arduino Uno"}, {Name: "Arduino Uno WiFi"}, diff --git a/i18n/cmd/po/parser.go b/i18n/cmd/po/parser.go index b367f9f1eab..acf16642bde 100644 --- a/i18n/cmd/po/parser.go +++ b/i18n/cmd/po/parser.go @@ -31,12 +31,11 @@ func Parse(filename string) MessageCatalog { } file, err := os.Open(filename) - defer file.Close() - if err != nil { fmt.Println(err.Error()) os.Exit(1) } + defer file.Close() return ParseReader(file) } @@ -102,7 +101,7 @@ func parseCatalog(scanner *bufio.Scanner) MessageCatalog { if strings.HasPrefix(line, "msgstr") { state = StateMessageValue - value += mustUnquote(strings.TrimLeft(line, "msgstr ")) + value += mustUnquote(strings.TrimPrefix(line, "msgstr ")) continue } From fe8639df52a2268a5c2c1463fc156545ce03cdf0 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 28 Mar 2022 10:23:04 +0200 Subject: [PATCH 2/4] Fixed some staticcheck warnings arduino/libraries/librariesindex/json.go:33:38: unknown JSON option "required" (SA5008) arduino/libraries/librariesindex/json.go:34:38: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:39:37: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:40:37: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:44:37: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:45:37: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:51:51: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:53:51: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:57:51: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:58:51: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:59:51: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:69:34: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:70:34: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:71:34: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:88:36: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:89:36: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:90:36: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:95:30: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:96:30: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:97:30: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:98:30: unknown JSON option "required" (SA5008) arduino/cores/packageindex/index.go:99:30: unknown JSON option "required" (SA5008) arduino/cores/tools.go:30:35: unknown JSON option "required" (SA5008) arduino/cores/tools.go:37:36: unknown JSON option "required" (SA5008) arduino/cores/tools.go:45:18: unknown JSON option "required" (SA5008) arduino/sketch/sketch.go:51:14: unknown JSON option "required" (SA5008) arduino/sketch/sketch.go:53:14: unknown JSON option "omitepty" (SA5008) cli/lib/search.go:103:16: unknown JSON option "required" (SA5008) cli/lib/search.go:107:24: unknown JSON option "required" (SA5008) cli/lib/search.go:183:9: the argument is already a string, there's no need to use fmt.Sprintf (S1025) --- arduino/cores/packageindex/index.go | 40 ++++++++++++------------ arduino/cores/tools.go | 10 +++--- arduino/libraries/librariesindex/json.go | 4 +-- arduino/sketch/sketch.go | 4 +-- cli/lib/search.go | 6 ++-- 5 files changed, 32 insertions(+), 32 deletions(-) diff --git a/arduino/cores/packageindex/index.go b/arduino/cores/packageindex/index.go index cf0f45596d9..2c27cd7333f 100644 --- a/arduino/cores/packageindex/index.go +++ b/arduino/cores/packageindex/index.go @@ -36,27 +36,27 @@ type Index struct { // indexPackage represents a single entry from package_index.json file. type indexPackage struct { - Name string `json:"name,required"` - Maintainer string `json:"maintainer,required"` + Name string `json:"name"` + Maintainer string `json:"maintainer"` WebsiteURL string `json:"websiteUrl"` URL string `json:"Url"` Email string `json:"email"` - Platforms []*indexPlatformRelease `json:"platforms,required"` - Tools []*indexToolRelease `json:"tools,required"` + Platforms []*indexPlatformRelease `json:"platforms"` + Tools []*indexToolRelease `json:"tools"` Help indexHelp `json:"help,omitempty"` } // indexPlatformRelease represents a single Core Platform from package_index.json file. type indexPlatformRelease struct { - Name string `json:"name,required"` + Name string `json:"name"` Architecture string `json:"architecture"` - Version *semver.Version `json:"version,required"` + Version *semver.Version `json:"version"` Deprecated bool `json:"deprecated"` Category string `json:"category"` URL string `json:"url"` - ArchiveFileName string `json:"archiveFileName,required"` - Checksum string `json:"checksum,required"` - Size json.Number `json:"size,required"` + ArchiveFileName string `json:"archiveFileName"` + Checksum string `json:"checksum"` + Size json.Number `json:"size"` Boards []indexBoard `json:"boards"` Help indexHelp `json:"help,omitempty"` ToolDependencies []indexToolDependency `json:"toolsDependencies"` @@ -66,9 +66,9 @@ type indexPlatformRelease struct { // indexToolDependency represents a single dependency of a core from a tool. type indexToolDependency struct { - Packager string `json:"packager,required"` - Name string `json:"name,required"` - Version *semver.RelaxedVersion `json:"version,required"` + Packager string `json:"packager"` + Name string `json:"name"` + Version *semver.RelaxedVersion `json:"version"` } // indexDiscoveryDependency represents a single dependency of a core from a pluggable discovery tool. @@ -85,18 +85,18 @@ type indexMonitorDependency struct { // indexToolRelease represents a single Tool from package_index.json file. type indexToolRelease struct { - Name string `json:"name,required"` - Version *semver.RelaxedVersion `json:"version,required"` - Systems []indexToolReleaseFlavour `json:"systems,required"` + Name string `json:"name"` + Version *semver.RelaxedVersion `json:"version"` + Systems []indexToolReleaseFlavour `json:"systems"` } // indexToolReleaseFlavour represents a single tool flavor in the package_index.json file. type indexToolReleaseFlavour struct { - OS string `json:"host,required"` - URL string `json:"url,required"` - ArchiveFileName string `json:"archiveFileName,required"` - Size json.Number `json:"size,required"` - Checksum string `json:"checksum,required"` + OS string `json:"host"` + URL string `json:"url"` + ArchiveFileName string `json:"archiveFileName"` + Size json.Number `json:"size"` + Checksum string `json:"checksum"` } // indexBoard represents a single Board as written in package_index.json file. diff --git a/arduino/cores/tools.go b/arduino/cores/tools.go index 70e36fba9ec..116a545fcb9 100644 --- a/arduino/cores/tools.go +++ b/arduino/cores/tools.go @@ -27,22 +27,22 @@ import ( // Tool represents a single Tool, part of a Package. type Tool struct { - Name string `json:"name,required"` // The Name of the Tool. - Releases map[string]*ToolRelease `json:"releases"` // Maps Version to Release. + Name string `json:"name"` // The Name of the Tool. + Releases map[string]*ToolRelease `json:"releases"` // Maps Version to Release. Package *Package `json:"-"` } // ToolRelease represents a single release of a tool type ToolRelease struct { - Version *semver.RelaxedVersion `json:"version,required"` // The version number of this Release. - Flavors []*Flavor `json:"systems"` // Maps OS to Flavor + Version *semver.RelaxedVersion `json:"version"` // The version number of this Release. + Flavors []*Flavor `json:"systems"` // Maps OS to Flavor Tool *Tool `json:"-"` InstallDir *paths.Path `json:"-"` } // Flavor represents a flavor of a Tool version. type Flavor struct { - OS string `json:"os,required"` // The OS Supported by this flavor. + OS string `json:"os"` // The OS Supported by this flavor. Resource *resources.DownloadResource } diff --git a/arduino/libraries/librariesindex/json.go b/arduino/libraries/librariesindex/json.go index 99700dee20b..c9fcd356da0 100644 --- a/arduino/libraries/librariesindex/json.go +++ b/arduino/libraries/librariesindex/json.go @@ -30,8 +30,8 @@ type indexJSON struct { } type indexRelease struct { - Name string `json:"name,required"` - Version *semver.Version `json:"version,required"` + Name string `json:"name"` + Version *semver.Version `json:"version"` Author string `json:"author"` Maintainer string `json:"maintainer"` Sentence string `json:"sentence"` diff --git a/arduino/sketch/sketch.go b/arduino/sketch/sketch.go index c5d8536cc42..308237a661d 100644 --- a/arduino/sketch/sketch.go +++ b/arduino/sketch/sketch.go @@ -48,9 +48,9 @@ type Metadata struct { // BoardMetadata represents the board metadata for the sketch type BoardMetadata struct { - Fqbn string `json:"fqbn,required"` + Fqbn string `json:"fqbn"` Name string `json:"name,omitempty"` - Port string `json:"port,omitepty"` + Port string `json:"port,omitempty"` } var tr = i18n.Tr diff --git a/cli/lib/search.go b/cli/lib/search.go index 2abd34906f6..b16e76790ad 100644 --- a/cli/lib/search.go +++ b/cli/lib/search.go @@ -100,11 +100,11 @@ type result struct { func (res result) Data() interface{} { if res.namesOnly { type LibName struct { - Name string `json:"name,required"` + Name string `json:"name"` } type NamesOnly struct { - Libraries []LibName `json:"libraries,required"` + Libraries []LibName `json:"libraries"` } names := []LibName{} @@ -180,7 +180,7 @@ func (res result) String() string { } } - return fmt.Sprintf("%s", out.String()) + return out.String() } func versionsFromSearchedLibrary(library *rpc.SearchedLibrary) []*semver.Version { From 41807c3d4397cf852cb19dc85d3518bb4fb8bee8 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 28 Mar 2022 10:30:34 +0200 Subject: [PATCH 3/4] Fixed some staticcheck warnings arduino/builder/sketch.go:165:5: should use !bytes.Equal(existingBytes, source) instead (S1004) arduino/builder/sketch_test.go:133:2: this value of err is never used (SA4006) arduino/cores/board.go:125:3: the surrounding loop is unconditionally terminated (SA4004) arduino/cores/packagemanager/package_manager.go:432:4: should replace loop with platforms = append(platforms, platform.GetAllInstalled()...) (S1011) arduino/cores/status.go:191:28: func ToolDependency.extractTool is unused (U1000) arduino/cores/status.go:203:28: func ToolDependency.extractRelease is unused (U1000) arduino/libraries/librariesindex/json.go:141:9: empty branch (SA9003) --- arduino/builder/sketch.go | 2 +- arduino/builder/sketch_test.go | 1 + arduino/cores/board.go | 3 ++- .../cores/packagemanager/package_manager.go | 4 +--- arduino/cores/status.go | 24 ------------------- arduino/libraries/librariesindex/json.go | 3 +-- 6 files changed, 6 insertions(+), 31 deletions(-) diff --git a/arduino/builder/sketch.go b/arduino/builder/sketch.go index 78815fcbe05..454d06d02a1 100644 --- a/arduino/builder/sketch.go +++ b/arduino/builder/sketch.go @@ -162,7 +162,7 @@ func writeIfDifferent(source []byte, destPath *paths.Path) error { } // Overwrite if contents are different - if bytes.Compare(existingBytes, source) != 0 { + if !bytes.Equal(existingBytes, source) { return destPath.WriteFile(source) } diff --git a/arduino/builder/sketch_test.go b/arduino/builder/sketch_test.go index 8ac9c324b2c..b47a09c02cb 100644 --- a/arduino/builder/sketch_test.go +++ b/arduino/builder/sketch_test.go @@ -131,5 +131,6 @@ func TestCopyAdditionalFiles(t *testing.T) { // verify file hasn't changed info2, err := s2.AdditionalFiles[0].Stat() + require.NoError(t, err) require.Equal(t, info1.ModTime(), info2.ModTime()) } diff --git a/arduino/cores/board.go b/arduino/cores/board.go index 23381c2bf2f..87b61326e4d 100644 --- a/arduino/cores/board.go +++ b/arduino/cores/board.go @@ -118,7 +118,8 @@ func (b *Board) GetBuildProperties(userConfigs *properties.Map) (*properties.Map } // Check for residual invalid options... - for _, invalidOption := range userConfigs.Keys() { + if invalidKeys := userConfigs.Keys(); len(invalidKeys) > 0 { + invalidOption := invalidKeys[0] if invalidOption == "" { return nil, fmt.Errorf(tr("invalid empty option found")) } diff --git a/arduino/cores/packagemanager/package_manager.go b/arduino/cores/packagemanager/package_manager.go index a7670828ec7..98e5a3e6415 100644 --- a/arduino/cores/packagemanager/package_manager.go +++ b/arduino/cores/packagemanager/package_manager.go @@ -429,9 +429,7 @@ func (pm *PackageManager) InstalledPlatformReleases() []*cores.PlatformRelease { platforms := []*cores.PlatformRelease{} for _, targetPackage := range pm.Packages { for _, platform := range targetPackage.Platforms { - for _, release := range platform.GetAllInstalled() { - platforms = append(platforms, release) - } + platforms = append(platforms, platform.GetAllInstalled()...) } } return platforms diff --git a/arduino/cores/status.go b/arduino/cores/status.go index 4617d5d6f86..dfcd826345a 100644 --- a/arduino/cores/status.go +++ b/arduino/cores/status.go @@ -187,27 +187,3 @@ func (targetPackage *Package) GetOrCreateTool(name string) *Tool { func (targetPackage *Package) String() string { return targetPackage.Name } - -func (tdep ToolDependency) extractTool(sc Packages) (*Tool, error) { - pkg, exists := sc[tdep.ToolPackager] - if !exists { - return nil, errors.New(tr("package not found")) - } - tool, exists := pkg.Tools[tdep.ToolName] - if !exists { - return nil, errors.New(tr("tool not found")) - } - return tool, nil -} - -func (tdep ToolDependency) extractRelease(sc Packages) (*ToolRelease, error) { - tool, err := tdep.extractTool(sc) - if err != nil { - return nil, err - } - release, exists := tool.Releases[tdep.ToolVersion.String()] - if !exists { - return nil, errors.New(tr("release not found")) - } - return release, nil -} diff --git a/arduino/libraries/librariesindex/json.go b/arduino/libraries/librariesindex/json.go index c9fcd356da0..e87985859ca 100644 --- a/arduino/libraries/librariesindex/json.go +++ b/arduino/libraries/librariesindex/json.go @@ -138,9 +138,8 @@ func (indexDep *indexDependency) extractDependency() *Dependency { var constraint semver.Constraint if c, err := semver.ParseConstraint(indexDep.Version); err == nil { constraint = c - } else { - // FIXME: report invalid constraint } + // FIXME: else { report invalid constraint } return &Dependency{ Name: indexDep.Name, VersionConstraint: constraint, From 197b2be6b9bd048c7e528b78cd3ee9fb574698d6 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 28 Mar 2022 10:35:23 +0200 Subject: [PATCH 4/4] Fixed some staticcheck warnings arduino/monitors/null.go:48:14: should use time.Since instead of time.Now().Sub (S1012) arduino/resources/checksums.go:79:5: should use !bytes.Equal(algo.Sum(nil), digest) instead (S1004) arduino/resources/checksums.go:155:6: func createPackageFile is unused (U1000) arduino/resources/helpers.go:65:12: this condition occurs multiple times in this if/else if chain (SA4014) arduino/resources/helpers_test.go:40:24: unnecessary use of fmt.Sprintf (S1039) cli/feedback/feedback.go:187:12: should use String() instead of fmt.Sprintf (S1025) cli/globals/globals.go:31:2: var tr is unused (U1000) cli/lib/args.go:89:6: should use strings.EqualFold instead (SA6005) commands/daemon/monitor.go:176:6: this value of slots is never used (SA4006) --- arduino/monitors/null.go | 2 +- arduino/resources/checksums.go | 16 +--------------- arduino/resources/helpers.go | 2 -- arduino/resources/helpers_test.go | 3 +-- cli/feedback/feedback.go | 2 +- cli/globals/globals.go | 2 -- cli/lib/args.go | 2 +- commands/daemon/monitor.go | 2 +- 8 files changed, 6 insertions(+), 25 deletions(-) diff --git a/arduino/monitors/null.go b/arduino/monitors/null.go index 14c3e44085b..bd80703ab68 100644 --- a/arduino/monitors/null.go +++ b/arduino/monitors/null.go @@ -45,7 +45,7 @@ func (mon *NullMonitor) Close() error { // Read bytes from the port func (mon *NullMonitor) Read(bytes []byte) (int, error) { for { - elapsed := time.Now().Sub(mon.started).Seconds() + elapsed := time.Since(mon.started).Seconds() n := int(elapsed*mon.bps) - mon.sent if n == 0 { // Delay until the next char... diff --git a/arduino/resources/checksums.go b/arduino/resources/checksums.go index 1620999882f..58cba7a0ffc 100644 --- a/arduino/resources/checksums.go +++ b/arduino/resources/checksums.go @@ -76,7 +76,7 @@ func (r *DownloadResource) TestLocalArchiveChecksum(downloadDir *paths.Path) (bo return false, fmt.Errorf(tr("computing hash: %s"), err) } - if bytes.Compare(algo.Sum(nil), digest) != 0 { + if !bytes.Equal(algo.Sum(nil), digest) { return false, fmt.Errorf(tr("archive hash differs from hash in index")) } @@ -152,20 +152,6 @@ func computeDirChecksum(root string) (string, error) { return fmt.Sprintf("%x", hash.Sum(nil)), nil } -func createPackageFile(root string) error { - checksum, err := computeDirChecksum(root) - if err != nil { - return err - } - - packageJSON, _ := json.Marshal(packageFile{checksum}) - err = ioutil.WriteFile(filepath.Join(root, packageFileName), packageJSON, filePermissions) - if err != nil { - return err - } - return nil -} - // CheckDirChecksum reads checksum from the package.json and compares it with a recomputed value. func CheckDirChecksum(root string) (bool, error) { packageJSON, err := ioutil.ReadFile(filepath.Join(root, packageFileName)) diff --git a/arduino/resources/helpers.go b/arduino/resources/helpers.go index b1c56d0f678..0f1ccbf1004 100644 --- a/arduino/resources/helpers.go +++ b/arduino/resources/helpers.go @@ -62,8 +62,6 @@ func (r *DownloadResource) Download(downloadDir *paths.Path, config *downloader. // File is cached, nothing to do here return nil, nil } - } else if err == nil { - // resume download } else { return nil, fmt.Errorf(tr("getting archive file info: %s"), err) } diff --git a/arduino/resources/helpers_test.go b/arduino/resources/helpers_test.go index 21445d25aab..a0b8efa161d 100644 --- a/arduino/resources/helpers_test.go +++ b/arduino/resources/helpers_test.go @@ -16,7 +16,6 @@ package resources import ( - "fmt" "io/ioutil" "net/http" "net/http/httptest" @@ -37,7 +36,7 @@ func (h *EchoHandler) ServeHTTP(writer http.ResponseWriter, request *http.Reques } func TestDownloadApplyUserAgentHeaderUsingConfig(t *testing.T) { - goldUserAgentValue := fmt.Sprintf("arduino-cli/0.0.0-test.preview (amd64; linux; go1.12.4) Commit:deadbeef/Build:2019-06-12 11:11:11.111") + goldUserAgentValue := "arduino-cli/0.0.0-test.preview (amd64; linux; go1.12.4) Commit:deadbeef/Build:2019-06-12 11:11:11.111" goldUserAgentString := "User-Agent: " + goldUserAgentValue tmp, err := paths.MkTempDir("", "") diff --git a/cli/feedback/feedback.go b/cli/feedback/feedback.go index 1a29630b887..0a27cc4f5cf 100644 --- a/cli/feedback/feedback.go +++ b/cli/feedback/feedback.go @@ -184,6 +184,6 @@ func (fb *Feedback) PrintResult(res Result) { case YAML: fb.printYAML(res.Data()) default: - fb.Print(fmt.Sprintf("%s", res)) + fb.Print(res.String()) } } diff --git a/cli/globals/globals.go b/cli/globals/globals.go index fc6811e38e4..8a73ba08745 100644 --- a/cli/globals/globals.go +++ b/cli/globals/globals.go @@ -19,7 +19,6 @@ import ( "os" "path/filepath" - "github.com/arduino/arduino-cli/i18n" "github.com/arduino/arduino-cli/version" ) @@ -28,5 +27,4 @@ var ( VersionInfo = version.NewInfo(filepath.Base(os.Args[0])) // DefaultIndexURL is the default index url DefaultIndexURL = "https://downloads.arduino.cc/packages/package_index.json" - tr = i18n.Tr ) diff --git a/cli/lib/args.go b/cli/lib/args.go index d7c2e639fc7..70f3799e0cd 100644 --- a/cli/lib/args.go +++ b/cli/lib/args.go @@ -86,7 +86,7 @@ func ParseLibraryReferenceArgAndAdjustCase(instance *rpc.Instance, arg string) ( candidates := []*rpc.SearchedLibrary{} for _, foundLib := range res.GetLibraries() { - if strings.ToLower(foundLib.GetName()) == strings.ToLower(libRef.Name) { + if strings.EqualFold(foundLib.GetName(), libRef.Name) { candidates = append(candidates, foundLib) } } diff --git a/commands/daemon/monitor.go b/commands/daemon/monitor.go index d173d39bfc5..606a6804219 100644 --- a/commands/daemon/monitor.go +++ b/commands/daemon/monitor.go @@ -173,7 +173,7 @@ func (s *MonitorService) StreamingOpen(stream rpc.MonitorService_StreamingOpenSe // Rate limit, filling all the available window if rateLimitEnabled { - slots = atomic.AddInt32(&writeSlots, -1) + atomic.AddInt32(&writeSlots, -1) } } }