tfdiags: FormatErrorPrefixed
When presenting an error that may be a PathError, the error's path is usually relative to some other value. If the caller is able to express that value (or, more often, a reference to it) in HCL syntax then this method will produce a complete expression in the error message, concatenating any path information from the error to the end of the given prefix string.
This commit is contained in:
parent
182e783885
commit
d96284f2e2
|
@ -54,3 +54,15 @@ func FormatError(err error) string {
|
||||||
|
|
||||||
return fmt.Sprintf("%s: %s", FormatCtyPath(perr.Path), perr.Error())
|
return fmt.Sprintf("%s: %s", FormatCtyPath(perr.Path), perr.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FormatErrorPrefixed is like FormatError except that it presents any path
|
||||||
|
// information after the given prefix string, which is assumed to contain
|
||||||
|
// an HCL syntax representation of the value that errors are relative to.
|
||||||
|
func FormatErrorPrefixed(err error, prefix string) string {
|
||||||
|
perr, ok := err.(cty.PathError)
|
||||||
|
if !ok || len(perr.Path) == 0 {
|
||||||
|
return fmt.Sprintf("%s: %s", prefix, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf("%s%s: %s", prefix, FormatCtyPath(perr.Path), perr.Error())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue