github.com/goreleaser/goreleaser@v1.25.1/internal/tmpl/errors.go (about) 1 package tmpl 2 3 import ( 4 "fmt" 5 "regexp" 6 ) 7 8 var res = []*regexp.Regexp{ 9 regexp.MustCompile(`^template: tmpl:\d+:\d+: executing ".+" at .+: `), 10 regexp.MustCompile(`^template: tmpl:\d+:\d+: `), 11 regexp.MustCompile(`^template: tmpl:\d+: `), 12 } 13 14 func newTmplError(str string, err error) error { 15 if err == nil { 16 return nil 17 } 18 details := err.Error() 19 for _, re := range res { 20 if re.MatchString(details) { 21 details = re.ReplaceAllString(details, "") 22 break 23 } 24 } 25 return Error{str, details, err} 26 } 27 28 // Error is returned on any template error. 29 type Error struct { 30 str string 31 details string 32 err error 33 } 34 35 func (e Error) Unwrap() error { 36 return e.err 37 } 38 39 func (e Error) Error() string { 40 return fmt.Sprintf( 41 "template: failed to apply %q: %s", 42 e.str, 43 e.details, 44 ) 45 }