Fix more golangci-lint warnings and update its config, bump required version of go compiler to 1.24.2

This commit is contained in:
eleksir
2025-04-07 20:14:14 +03:00
parent f905ba79a3
commit 44dbaee87a
9 changed files with 60 additions and 47 deletions

View File

@@ -1,28 +1,12 @@
version: "2"
run:
tests: false
skip-dirs:
- data
- vendor
go: "1.24"
modules-download-mode: readonly
tests: false
allow-parallel-runners: true
go: '1.21'
output:
sort-results: true
linters-settings:
gosec:
excludes:
# not relevant here
- G404 # Insecure random number source (rand)
- G306 # Expect WriteFile permissions to be 0600 or less (gosec)
linters:
disable-all: true
default: none
enable:
- errcheck
- gosimple
- govet
- ineffassign
- staticcheck
- unused
- asasalint
- asciicheck
- bodyclose
@@ -30,20 +14,20 @@ linters:
- contextcheck
- decorder
- durationcheck
- err113
- errcheck
- errchkjson
- errorlint
- exportloopref
- ginkgolinter
- gocheckcompilerdirectives
- gocritic
- godot
- goerr113
- gofmt
- goimports
- gosec
- gosmopolitan
- govet
- grouper
- importas
- ineffassign
- ireturn
- makezero
- mirror
@@ -59,8 +43,39 @@ linters:
- reassign
- revive
- rowserrcheck
- stylecheck
- staticcheck
- unconvert
- unused
- wastedassign
- whitespace
- wsl
settings:
gosec:
excludes:
- G404
- G306
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- data
- vendor
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
- goimports
exclusions:
generated: lax
paths:
- data
- vendor
- third_party$
- builtin$
- examples$

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env gmake -f
BUILDOPTS=-ldflags="-s -w" -a -gcflags=all=-l -trimpath
BUILDOPTS=-ldflags="-s -w" -a -gcflags=all=-l -trimpath -buildvcs=false
BINARY=i3status-go
TEST1=battery-test

View File

@@ -14,7 +14,7 @@ func main() {
batteries, _ := battery.GetAll()
for index, battery := range batteries {
fmt.Printf("Battery %s: %s\n", index, spew.Sdump(battery))
fmt.Printf("Battery %d: %s\n", index, spew.Sdump(battery))
}
time.Sleep(1 * time.Second)

2
go.mod
View File

@@ -1,6 +1,6 @@
module i3status-go
go 1.22.6
go 1.24.2
require (
github.com/adrg/xdg v0.5.0

View File

@@ -11,11 +11,11 @@ import (
// UpdateBatteryInfo updates info about battery charge.
func (c *MyConfig) UpdateBatteryInfo() {
var (
ch int
status string
Batts string
InitialDelay time.Duration = 100 * time.Millisecond
LoopIterationDelay time.Duration = 5 * time.Second
ch int
status string
Batts string
InitialDelay = 100 * time.Millisecond
LoopIterationDelay = 5 * time.Second
)
Delay := InitialDelay

View File

@@ -252,7 +252,7 @@ type MyConfig struct {
// readConf reads and validates config if config does not exist, it puts default config to the same dir where i3 config
// is located.
func ReadConf(DefaultConfig []byte) (*MyConfig, error) {
func ReadConf(defaultConfig []byte) (*MyConfig, error) {
var (
path string
config *MyConfig
@@ -272,7 +272,7 @@ func ReadConf(DefaultConfig []byte) (*MyConfig, error) {
// about it for now.
if err != nil {
if errors.Is(err, os.ErrNotExist) {
buf = DefaultConfig
buf = defaultConfig
if err := os.WriteFile(path, buf, 0644); err != nil {
return config, err
@@ -283,7 +283,7 @@ func ReadConf(DefaultConfig []byte) (*MyConfig, error) {
} else {
// Config file looks too long for config...
if fileInfo.Size() > 65535 {
err := fmt.Errorf("config file %s is too long for config", path) //nolint: goerr113
err := fmt.Errorf("config file %s is too long for config", path) //nolint: err113
return config, err
}
@@ -1530,13 +1530,11 @@ func ReadConf(DefaultConfig []byte) (*MyConfig, error) {
for num, app := range sampleConfig.Apps {
// app.Instance can be missing.
// app.Class can be missing.
if app.Name == "" {
app.Name = fmt.Sprintf("app%d", num)
}
// app.Args can be empty slice. In that case command will be run without aruments.
if app.Cmd == "" {
app.Cmd = "true"
}
@@ -1557,12 +1555,11 @@ func ReadConf(DefaultConfig []byte) (*MyConfig, error) {
app.BorderActive = sampleConfig.Color
}
// app.Separator can be omitted, in that case it is false
// app.SeparatorBlockWidth can be missing
if app.FullText == "" {
app.FullText = fmt.Sprintf(" %d ", num)
}
// app.Separator can be omitted, in that case it is false
// app.SeparatorBlockWidth can be missing
}
}

View File

@@ -152,10 +152,10 @@ func HasWindows(className string, instanceName string) bool {
func FindWindowInstance(regexpStr string) bool {
var found = false
f := func(key interface{}, value interface{}) bool {
f := func(key any, value any) bool { //nolint: revive
keyStr := reflect.ValueOf(key).String()
re, err := regexp.Compile(regexpStr) //nolint:nolintlint, gocritic, we do not want shit our pants and panic on
re, err := regexp.Compile(regexpStr) // we do not want shit our pants and panic on
// erroneous regexp, we want log it to stderr, that it.
if err != nil {
@@ -183,10 +183,10 @@ func FindWindowInstance(regexpStr string) bool {
func FindWindowClass(regexpStr string) bool {
var found = false
f := func(key interface{}, value interface{}) bool {
f := func(key any, value any) bool { //nolint: revive
keyStr := reflect.ValueOf(key).String()
re, err := regexp.Compile(regexpStr) //nolint:nolintlint, gocritic, we do not want shit our pants and panic on
re, err := regexp.Compile(regexpStr) // we do not want shit our pants and panic on
// erroneous regexp, we want log it to stderr, that it.
if err != nil {

View File

@@ -135,7 +135,7 @@ func (c *MyConfig) PaReinit() error {
}
if cnt >= 5 {
return errors.New("timeout waiting pulseaudio to exit") //nolint: goerr113
return errors.New("timeout waiting pulseaudio to exit") //nolint: err113
}
log.Print("Waiting for pulseaudio to exit")

View File

@@ -69,6 +69,7 @@ func (c *MyConfig) VPNTCPCheck() bool {
if err == nil {
_ = conn.Close()
return true
}