Skip to content

Commit 1d35e55

Browse files
committed
🌱 (chore): wrap errors using %w and improve formatting in golang plugin
Replaced usage of `%v` with `%w` in `fmt.Errorf` calls to enable proper error chaining across: - `pkg/plugins/golang/repository.go` - `go_version.go` - `v4/scaffolds/api.go` Also improved formatting by quoting dynamic values with `%q` and removed redundant error wrapping logic.
1 parent 6452e9f commit 1d35e55

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

‎pkg/plugins/golang/go_version.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,18 @@ func (v *GoVersion) parse(verStr string) error {
6464

6565
v.major, err = strconv.Atoi(m[1])
6666
if err != nil {
67-
return fmt.Errorf("error parsing major version '%s': %s", m[1], err)
67+
return fmt.Errorf("error parsing major version %q: %w", m[1], err)
6868
}
6969

7070
v.minor, err = strconv.Atoi(m[2])
7171
if err != nil {
72-
return fmt.Errorf("error parsing minor version '%s': %s", m[2], err)
72+
return fmt.Errorf("error parsing minor version %q: %w", m[2], err)
7373
}
7474

7575
if m[3] != "" {
7676
v.patch, err = strconv.Atoi(m[3])
7777
if err != nil {
78-
return fmt.Errorf("error parsing patch version '%s': %s", m[2], err)
78+
return fmt.Errorf("error parsing patch version %q: %w", m[2], err)
7979
}
8080
}
8181

@@ -126,7 +126,7 @@ func (v GoVersion) Compare(other GoVersion) int {
126126
func ValidateGoVersion(minVersion, maxVersion GoVersion) error {
127127
err := fetchAndCheckGoVersion(minVersion, maxVersion)
128128
if err != nil {
129-
return fmt.Errorf("%s. You can skip this check using the --skip-go-version-check flag", err)
129+
return fmt.Errorf("you can skip this check using the --skip-go-version-check flag: %w", err)
130130
}
131131
return nil
132132
}
@@ -144,7 +144,7 @@ func fetchAndCheckGoVersion(minVersion, maxVersion GoVersion) error {
144144
}
145145
goVer := split[2]
146146
if err := checkGoVersion(goVer, minVersion, maxVersion); err != nil {
147-
return fmt.Errorf("go version '%s' is incompatible because '%s'", goVer, err)
147+
return fmt.Errorf("go version %q is incompatible: %w", goVer, err)
148148
}
149149
return nil
150150
}
@@ -156,7 +156,7 @@ func checkGoVersion(verStr string, minVersion, maxVersion GoVersion) error {
156156
}
157157

158158
if version.Compare(minVersion) < 0 || version.Compare(maxVersion) >= 0 {
159-
return fmt.Errorf("plugin requires %s <= version < %s", minVersion, maxVersion)
159+
return fmt.Errorf("plugin requires %q <= version < %q", minVersion, maxVersion)
160160
}
161161

162162
return nil

‎pkg/plugins/golang/repository.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func FindCurrentRepo() (string, error) {
8282
}
8383
// give up, let the user figure it out
8484
return "", fmt.Errorf("could not determine repository path from module data, "+
85-
"package data, or by initializing a module: %v", err)
85+
"package data, or by initializing a module: %w", err)
8686
}
8787
//nolint:errcheck
8888
defer os.Remove("go.mod") // clean up after ourselves

‎pkg/plugins/golang/v4/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func (p *initSubcommand) InjectConfig(c config.Config) error {
101101
if p.repo == "" {
102102
repoPath, err := golang.FindCurrentRepo()
103103
if err != nil {
104-
return fmt.Errorf("error finding current repository: %v", err)
104+
return fmt.Errorf("error finding current repository: %w", err)
105105
}
106106
p.repo = repoPath
107107
}

‎pkg/plugins/golang/v4/scaffolds/api.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func (s *apiScaffolder) Scaffold() error {
101101
&api.Types{Force: s.force},
102102
&api.Group{},
103103
); err != nil {
104-
return fmt.Errorf("error scaffolding APIs: %v", err)
104+
return fmt.Errorf("error scaffolding APIs: %w", err)
105105
}
106106
}
107107

@@ -111,14 +111,14 @@ func (s *apiScaffolder) Scaffold() error {
111111
&controllers.Controller{ControllerRuntimeVersion: ControllerRuntimeVersion, Force: s.force},
112112
&controllers.ControllerTest{Force: s.force, DoAPI: doAPI},
113113
); err != nil {
114-
return fmt.Errorf("error scaffolding controller: %v", err)
114+
return fmt.Errorf("error scaffolding controller: %w", err)
115115
}
116116
}
117117

118118
if err := scaffold.Execute(
119119
&cmd.MainUpdater{WireResource: doAPI, WireController: doController},
120120
); err != nil {
121-
return fmt.Errorf("error updating cmd/main.go: %v", err)
121+
return fmt.Errorf("error updating cmd/main.go: %w", err)
122122
}
123123

124124
return nil

0 commit comments

Comments
 (0)