package common import ( "errors" "strings" ) var UnknownParser error = errors.New("Cannot parse path") type PRConflictResolver interface { /* stage_content -> { merge_base (stage1), head (stage2), merge_head (stage3) } */ Resolve(path string, stage_contents [3]string) error } var resolvers []PRConflictResolver = []PRConflictResolver{ &submodule_conflict_resolver{}, } func ResolveMergeConflict(path string, file_contents [3]string) error { for _, r := range resolvers { if err := r.Resolve(path, file_contents); err != UnknownParser { return err } } return UnknownParser } type submodule_conflict_resolver struct{} func (*submodule_conflict_resolver) Resolve(path string, stage [3]string) error { if path != ".gitmodules" { return UnknownParser } return UnknownParser } type changes_file_resolver struct{} func (*changes_file_resolver) Resolve(path string, stage [3]string) error { if !strings.HasSuffix(path, ".changes") { return UnknownParser } return UnknownParser }