9
9
"os"
10
10
"path/filepath"
11
11
"strings"
12
+ "time"
12
13
13
14
"github.com/golangci/golangci-lint/internal/renameio"
14
15
"github.com/golangci/golangci-lint/scripts/website/types"
@@ -29,6 +30,7 @@ func main() {
29
30
30
31
func rewriteDocs (replacements map [string ]string ) error {
31
32
madeReplacements := map [string ]bool {}
33
+
32
34
err := filepath .Walk (filepath .Join ("docs" , "src" , "docs" ),
33
35
func (path string , info os.FileInfo , err error ) error {
34
36
if err != nil {
@@ -40,7 +42,7 @@ func rewriteDocs(replacements map[string]string) error {
40
42
return processDoc (path , replacements , madeReplacements )
41
43
})
42
44
if err != nil {
43
- return fmt .Errorf ("failed to walk dir: %w" , err )
45
+ return fmt .Errorf ("walk dir: %w" , err )
44
46
}
45
47
46
48
if len (madeReplacements ) != len (replacements ) {
@@ -57,7 +59,7 @@ func rewriteDocs(replacements map[string]string) error {
57
59
func processDoc (path string , replacements map [string ]string , madeReplacements map [string ]bool ) error {
58
60
contentBytes , err := os .ReadFile (path )
59
61
if err != nil {
60
- return fmt .Errorf ("failed to read %s: %w" , path , err )
62
+ return fmt .Errorf ("read %s: %w" , path , err )
61
63
}
62
64
63
65
content := string (contentBytes )
@@ -81,7 +83,7 @@ func processDoc(path string, replacements map[string]string, madeReplacements ma
81
83
82
84
log .Printf ("Expanded template in %s, saving it" , path )
83
85
if err = renameio .WriteFile (path , []byte (content ), os .ModePerm ); err != nil {
84
- return fmt .Errorf ("failed to write changes to file %s: %w" , path , err )
86
+ return fmt .Errorf ("write changes to file %s: %w" , path , err )
85
87
}
86
88
87
89
return nil
@@ -92,29 +94,38 @@ type latestRelease struct {
92
94
}
93
95
94
96
func getLatestVersion () (string , error ) {
95
- req , err := http .NewRequest ( //nolint:noctx
96
- http .MethodGet ,
97
- "https://api.github.com/repos/golangci/golangci-lint/releases/latest" ,
98
- http .NoBody ,
99
- )
97
+ endpoint := "https://api.github.com/repos/golangci/golangci-lint/releases/latest"
98
+
99
+ //nolint:noctx
100
+ req , err := http .NewRequest (http .MethodGet , endpoint , http .NoBody )
100
101
if err != nil {
101
- return "" , fmt .Errorf ("failed to prepare a http request: %w" , err )
102
+ return "" , fmt .Errorf ("prepare a HTTP request: %w" , err )
102
103
}
103
- req .Header .Add ("Accept" , "application/vnd.github.v3+json" )
104
- resp , err := http .DefaultClient .Do (req )
104
+
105
+ req .Header .Set ("Accept" , "application/vnd.github.v3+json" )
106
+
107
+ client := & http.Client {Timeout : 2 * time .Second }
108
+
109
+ resp , err := client .Do (req )
110
+
105
111
if err != nil {
106
- return "" , fmt .Errorf ("failed to get http response for the latest tag: %w" , err )
112
+ return "" , fmt .Errorf ("get HTTP response for the latest tag: %w" , err )
107
113
}
114
+
108
115
defer resp .Body .Close ()
116
+
109
117
body , err := io .ReadAll (resp .Body )
110
118
if err != nil {
111
- return "" , fmt .Errorf ("failed to read a body for the latest tag: %w" , err )
119
+ return "" , fmt .Errorf ("read a body for the latest tag: %w" , err )
112
120
}
121
+
113
122
release := latestRelease {}
123
+
114
124
err = json .Unmarshal (body , & release )
115
125
if err != nil {
116
- return "" , fmt .Errorf ("failed to unmarshal the body for the latest tag: %w" , err )
126
+ return "" , fmt .Errorf ("unmarshal the body for the latest tag: %w" , err )
117
127
}
128
+
118
129
return release .TagName , nil
119
130
}
120
131
@@ -126,7 +137,7 @@ func buildTemplateContext() (map[string]string, error) {
126
137
127
138
pluginReference , err := getPluginReference ()
128
139
if err != nil {
129
- return nil , fmt .Errorf ("failed to read plugin reference file: %w" , err )
140
+ return nil , fmt .Errorf ("read plugin reference file: %w" , err )
130
141
}
131
142
132
143
helps , err := readJSONFile [types.CLIHelp ](filepath .Join ("assets" , "cli-help.json" ))
@@ -136,12 +147,12 @@ func buildTemplateContext() (map[string]string, error) {
136
147
137
148
changeLog , err := os .ReadFile ("CHANGELOG.md" )
138
149
if err != nil {
139
- return nil , err
150
+ return nil , fmt . Errorf ( "read CHANGELOG.md: %w" , err )
140
151
}
141
152
142
153
latestVersion , err := getLatestVersion ()
143
154
if err != nil {
144
- return nil , fmt .Errorf ("failed to get the latest version: %w" , err )
155
+ return nil , fmt .Errorf ("get the latest version: %w" , err )
145
156
}
146
157
147
158
exclusions , err := getDefaultExclusions ()
@@ -169,14 +180,16 @@ func readJSONFile[T any](src string) (T, error) {
169
180
file , err := os .Open (src )
170
181
if err != nil {
171
182
var zero T
172
- return zero , err
183
+ return zero , fmt . Errorf ( "open file %s: %w" , src , err )
173
184
}
174
185
186
+ defer func () { _ = file .Close () }()
187
+
175
188
var result T
176
189
err = json .NewDecoder (file ).Decode (& result )
177
190
if err != nil {
178
191
var zero T
179
- return zero , err
192
+ return zero , fmt . Errorf ( "decode JSON file %s: %w" , src , err )
180
193
}
181
194
182
195
return result , nil
0 commit comments