@@ -210,13 +210,13 @@ func doTemplate(t Template) ([]byte, error) {
210
210
211
211
// Set the template body
212
212
if _ , err := temp .Parse (t .GetBody ()); err != nil {
213
- return nil , err
213
+ return nil , fmt . Errorf ( "failed to parse template: %w" , err )
214
214
}
215
215
216
216
// Execute the template
217
217
out := & bytes.Buffer {}
218
218
if err := temp .Execute (out , t ); err != nil {
219
- return nil , err
219
+ return nil , fmt . Errorf ( "failed to execute template: %w" , err )
220
220
}
221
221
b := out .Bytes ()
222
222
@@ -225,7 +225,7 @@ func doTemplate(t Template) ([]byte, error) {
225
225
if filepath .Ext (t .GetPath ()) == ".go" {
226
226
var err error
227
227
if b , err = imports .Process (t .GetPath (), b , & options ); err != nil {
228
- return nil , err
228
+ return nil , fmt . Errorf ( "failed to process template: %w" , err )
229
229
}
230
230
}
231
231
@@ -236,7 +236,7 @@ func doTemplate(t Template) ([]byte, error) {
236
236
func (s Scaffold ) updateFileModel (i Inserter , models map [string ]* File ) error {
237
237
m , err := s .loadPreviousModel (i , models )
238
238
if err != nil {
239
- return err
239
+ return fmt . Errorf ( "failed to load previous model: %w" , err )
240
240
}
241
241
242
242
// Get valid code fragments
@@ -245,7 +245,7 @@ func (s Scaffold) updateFileModel(i Inserter, models map[string]*File) error {
245
245
// Remove code fragments that already were applied
246
246
err = filterExistingValues (m .Contents , codeFragments )
247
247
if err != nil {
248
- return err
248
+ return fmt . Errorf ( "failed to filter existing values: %w" , err )
249
249
}
250
250
251
251
// If no code fragment to insert, we are done
@@ -255,15 +255,15 @@ func (s Scaffold) updateFileModel(i Inserter, models map[string]*File) error {
255
255
256
256
content , err := insertStrings (m .Contents , codeFragments )
257
257
if err != nil {
258
- return err
258
+ return fmt . Errorf ( "failed to insert values: %w" , err )
259
259
}
260
260
261
261
// TODO(adirio): move go-formatting to write step
262
262
formattedContent := content
263
263
if ext := filepath .Ext (i .GetPath ()); ext == ".go" {
264
264
formattedContent , err = imports .Process (i .GetPath (), content , nil )
265
265
if err != nil {
266
- return err
266
+ return fmt . Errorf ( "failed to process formatted content: %w" , err )
267
267
}
268
268
}
269
269
@@ -277,9 +277,9 @@ func (s Scaffold) updateFileModel(i Inserter, models map[string]*File) error {
277
277
func (s Scaffold ) loadPreviousModel (i Inserter , models map [string ]* File ) (* File , error ) {
278
278
path := i .GetPath ()
279
279
280
- // Lets see if we already have a model for this file
280
+ // Let's see if we already have a model for this file
281
281
if m , found := models [path ]; found {
282
- // Check if there is already an scaffolded file
282
+ // Check if there is already a scaffolded file
283
283
exists , err := afero .Exists (s .fs , path )
284
284
if err != nil {
285
285
return nil , ExistsFileError {err }
@@ -365,7 +365,7 @@ func filterExistingValues(content string, codeFragmentsMap CodeFragmentsMap) err
365
365
for _ , codeFragment := range codeFragments {
366
366
exists , err := codeFragmentExists (content , codeFragment )
367
367
if err != nil {
368
- return err
368
+ return fmt . Errorf ( "failed to check if code fragment exists: %w" , err )
369
369
}
370
370
if ! exists {
371
371
codeFragmentsOut = append (codeFragmentsOut , codeFragment )
@@ -401,8 +401,8 @@ func codeFragmentExists(content, codeFragment string) (exists bool, err error) {
401
401
return true
402
402
}
403
403
404
- if err := scanMultiline (content , scanLines , scanFunc ); err != nil {
405
- return false , err
404
+ if scanMultilineErr := scanMultiline (content , scanLines , scanFunc ); scanMultilineErr != nil {
405
+ return false , scanMultilineErr
406
406
}
407
407
408
408
return exists , nil
@@ -418,10 +418,19 @@ func scanMultiline(content string, scanLines int, scanFunc func(contentGroup str
418
418
if scanLines == 1 {
419
419
for scanner .Scan () {
420
420
if ! scanFunc (strings .TrimSpace (scanner .Text ())) {
421
- return scanner .Err ()
421
+ if err := scanner .Err (); err != nil {
422
+ return fmt .Errorf ("failed to scan content: %w" , err )
423
+ }
424
+
425
+ return nil
422
426
}
423
427
}
424
- return scanner .Err ()
428
+
429
+ if err := scanner .Err (); err != nil {
430
+ return fmt .Errorf ("failed to scan content: %w" , err )
431
+ }
432
+
433
+ return nil
425
434
}
426
435
427
436
// Complex case.
@@ -441,11 +450,19 @@ func scanMultiline(content string, scanLines int, scanFunc func(contentGroup str
441
450
}
442
451
443
452
if ! scanFunc (strings .TrimSpace (sb .String ())) {
444
- return scanner .Err ()
453
+ if err := scanner .Err (); err != nil {
454
+ return fmt .Errorf ("failed to scan content: %w" , err )
455
+ }
456
+
457
+ return nil
445
458
}
446
459
}
447
460
448
- return scanner .Err ()
461
+ if err := scanner .Err (); err != nil {
462
+ return fmt .Errorf ("failed to scan content: %w" , err )
463
+ }
464
+
465
+ return nil
449
466
}
450
467
451
468
func insertStrings (content string , codeFragmentsMap CodeFragmentsMap ) ([]byte , error ) {
@@ -466,13 +483,13 @@ func insertStrings(content string, codeFragmentsMap CodeFragmentsMap) ([]byte, e
466
483
_ , _ = out .WriteString (line + "\n " ) // bytes.Buffer.WriteString always returns nil errors
467
484
}
468
485
if err := scanner .Err (); err != nil {
469
- return nil , err
486
+ return nil , fmt . Errorf ( "failed to scan content: %w" , err )
470
487
}
471
488
472
489
return out .Bytes (), nil
473
490
}
474
491
475
- func (s Scaffold ) writeFile (f * File ) ( err error ) {
492
+ func (s Scaffold ) writeFile (f * File ) error {
476
493
// Check if the file to write already exists
477
494
exists , err := afero .Exists (s .fs , f .Path )
478
495
if err != nil {
@@ -507,8 +524,8 @@ func (s Scaffold) writeFile(f *File) (err error) {
507
524
}
508
525
}()
509
526
510
- if _ , err := writer .Write ([]byte (f .Contents )); err != nil {
511
- return WriteFileError {err }
527
+ if _ , writeErr := writer .Write ([]byte (f .Contents )); writeErr != nil {
528
+ return WriteFileError {writeErr }
512
529
}
513
530
514
531
return nil
0 commit comments