Patrick Georgi has uploaded this change for review. ( https://review.coreboot.org/29607
Change subject: util/scripts/maintainers.go: Add Gerrit reviewers config emitter ......................................................................
util/scripts/maintainers.go: Add Gerrit reviewers config emitter
The gerrit reviewers plugin has a certain configuration format. Teach maintainers to emit it when called with -print-gerrit-rules.
Change-Id: I92cfc905e0c1b03b7cf793a4324c392140a22060 Signed-off-by: Patrick Georgi pgeorgi@google.com --- M util/scripts/maintainers.go 1 file changed, 35 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/29607/1
diff --git a/util/scripts/maintainers.go b/util/scripts/maintainers.go index 6d91b90..1204e95 100644 --- a/util/scripts/maintainers.go +++ b/util/scripts/maintainers.go @@ -286,10 +286,40 @@ return "^" + regex + "$" }
+var is_email *regexp.Regexp + +func extract_maintainer(maintainer string) string { + if is_email == nil { + is_email = regexp.MustCompile("<[^>]*>") + } + + if match := is_email.FindStringSubmatch(maintainer); match != nil { + return match[0][1 : len(match[0])-1] + } + return maintainer +} + +func do_print_gerrit_rules() { + for _, subsystem := range subsystems { + if len(subsystem.paths) == 0 || len(subsystem.maintainer) == 0 { + continue + } + fmt.Println("#", subsystem.name) + for _, path := range subsystem.paths { + fmt.Println("[filter "file:" + path_to_regexstr(path) + ""]") + for _, maint := range subsystem.maintainer { + fmt.Println(" reviewer =", extract_maintainer(maint)) + } + } + fmt.Println() + } +} + func main() { var files []string var err error
+ var print_gerrit_rules = flag.Bool("print-gerrit-rules", false, "emit the MAINTAINERS rules in a format suitable for Gerrit's reviewers plugin") var debug = flag.Bool("debug", false, "emit additional debug output") flag.Parse()
@@ -305,6 +335,11 @@ print_maintainers() }
+ if *print_gerrit_rules { + do_print_gerrit_rules() + return + } + args := flag.Args() if len(args) == 0 { /* get the filenames */