(file []byte, path string)
| 215 | } |
| 216 | |
| 217 | func parse(file []byte, path string) (map[string]interface{}, error) { |
| 218 | generic := map[string]interface{}{} |
| 219 | |
| 220 | if err := yaml.Unmarshal(file, &generic); err != nil { |
| 221 | r := regexp.MustCompile(`yaml: line (\d+): (.+)`) |
| 222 | if r.MatchString(err.Error()) { |
| 223 | groups := r.FindStringSubmatch(err.Error()) |
| 224 | i, erri := strconv.Atoi(groups[1]) |
| 225 | if erri != nil { |
| 226 | return generic, core.NewE100("addCheck/Atoi", erri) |
| 227 | } |
| 228 | return generic, core.NewE201FromPosition(groups[2], path, i) |
| 229 | } |
| 230 | } else if err = validateDefinition(generic, path); err != nil { |
| 231 | return generic, err |
| 232 | } |
| 233 | |
| 234 | return generic, nil |
| 235 | } |
| 236 | |
| 237 | func validateDefinition(generic map[string]interface{}, path string) error { |
| 238 | if point, ok := generic["extends"]; !ok || point == nil { |
no test coverage detected
searching dependent graphs…