@@ -90,13 +90,13 @@ func LoadVideoMeta(config Config, video *youtube.Video) (*VideoMeta, error) {
9090 if config .MetaJSON != "" {
9191 file , e := os .ReadFile (config .MetaJSON )
9292 if e != nil {
93- e2 := fmt .Errorf ("error reading file %q: %s " , config .MetaJSON , e )
93+ e2 := fmt .Errorf ("error reading file %q: %w " , config .MetaJSON , e )
9494 return nil , e2
9595 }
9696
9797 e = json .Unmarshal (file , & videoMeta )
9898 if e != nil {
99- e2 := fmt .Errorf ("error parsing file %q: %s " , config .MetaJSON , e )
99+ e2 := fmt .Errorf ("error parsing file %q: %w " , config .MetaJSON , e )
100100 return nil , e2
101101 }
102102
@@ -192,7 +192,7 @@ func Open(filename string, mediaType MediaType) (io.ReadCloser, int, error) {
192192 var resp * http.Response
193193 resp , err = http .Head (filename )
194194 if err != nil {
195- return reader , 0 , fmt .Errorf ("error opening %s : %s " , filename , err )
195+ return reader , 0 , fmt .Errorf ("error opening %q : %w " , filename , err )
196196 }
197197 lenStr := resp .Header .Get ("content-length" )
198198 if lenStr != "" {
@@ -204,9 +204,11 @@ func Open(filename string, mediaType MediaType) (io.ReadCloser, int, error) {
204204
205205 resp , err = http .Get (filename )
206206 if err != nil {
207- return reader , 0 , fmt .Errorf ("error opening %s : %s " , filename , err )
207+ return reader , 0 , fmt .Errorf ("error opening %q : %w " , filename , err )
208208 }
209- if resp .ContentLength != 0 {
209+ // Go doc: When err is nil, resp always contains a non-nil resp.Body. Caller should close resp.Body when done reading from it.
210+ defer resp .Body .Close ()
211+ if resp .ContentLength > 0 {
210212 filesize = resp .ContentLength
211213 }
212214 reader = resp .Body
@@ -217,23 +219,23 @@ func Open(filename string, mediaType MediaType) (io.ReadCloser, int, error) {
217219 var fileInfo os.FileInfo
218220 file , err = os .Open (filename )
219221 if err != nil {
220- return reader , 0 , fmt .Errorf ("error opening %s : %s " , filename , err )
222+ return reader , 0 , fmt .Errorf ("error opening %q : %w " , filename , err )
221223 }
222224
223225 fileInfo , err = file .Stat ()
224226 if err != nil {
225- return reader , 0 , fmt .Errorf ("error stat'ing %s : %s " , filename , err )
227+ return reader , 0 , fmt .Errorf ("error stat'ing %q : %w " , filename , err )
226228 }
227229
228230 // check the file looks like the media type it is supposed to be
229231 buf := make ([]byte , 512 )
230232 _ , err = file .Read (buf )
231233 if err != nil {
232- return reader , 0 , fmt .Errorf ("error reading %s : %s " , filename , err )
234+ return reader , 0 , fmt .Errorf ("error reading %q : %w " , filename , err )
233235 }
234236 _ , err = file .Seek (0 , 0 )
235237 if err != nil {
236- return reader , 0 , fmt .Errorf ("error reading %s : %s " , filename , err )
238+ return reader , 0 , fmt .Errorf ("error reading %q : %w " , filename , err )
237239 }
238240 contentType := http .DetectContentType (buf )
239241 switch mediaType {
0 commit comments