(err error)
| 684 | } |
| 685 | |
| 686 | func configValidationErrors(err error) []configValidationError { |
| 687 | record := configValidationError{ |
| 688 | Code: "config.invalid", |
| 689 | Message: err.Error(), |
| 690 | } |
| 691 | if fileErr, ok := errors.AsType[aghconfig.FileError](err); ok { |
| 692 | record.File = fileErr.Path |
| 693 | switch fileErr.Op { |
| 694 | case "decode": |
| 695 | record.Code = "config.decode" |
| 696 | case configReadKey: |
| 697 | record.Code = "config.read" |
| 698 | default: |
| 699 | record.Code = "config.file" |
| 700 | } |
| 701 | } |
| 702 | if parseErr, ok := errors.AsType[burnttoml.ParseError](err); ok { |
| 703 | record.Code = "config.parse" |
| 704 | record.Line = parseErr.Position.Line |
| 705 | record.Column = parseErr.Position.Col |
| 706 | record.Message = parseErr.Message |
| 707 | } |
| 708 | if validationErr, ok := errors.AsType[aghconfig.ValidationError](err); ok { |
| 709 | record.Code = "config.validation" |
| 710 | record.Path = validationErr.Path |
| 711 | record.Message = validationErr.Error() |
| 712 | } |
| 713 | return []configValidationError{record} |
| 714 | } |
| 715 | |
| 716 | func newConfigEditCommand(deps commandDeps) *cobra.Command { |
| 717 | var ( |
no test coverage detected