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> Reviewed-on: https://review.coreboot.org/29607 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
62a27385fd
commit
e874df9e0b
|
@ -258,11 +258,41 @@ func glob_to_regex(glob string) string {
|
|||
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
|
||||
err error
|
||||
debug = flag.Bool("debug", false, "emit additional debug output")
|
||||
files []string
|
||||
err error
|
||||
print_gerrit_rules = flag.Bool("print-gerrit-rules", false, "emit the MAINTAINERS rules in a format suitable for Gerrit's reviewers plugin")
|
||||
debug = flag.Bool("debug", false, "emit additional debug output")
|
||||
)
|
||||
flag.Parse()
|
||||
|
||||
|
@ -278,6 +308,11 @@ func main() {
|
|||
print_maintainers()
|
||||
}
|
||||
|
||||
if *print_gerrit_rules {
|
||||
do_print_gerrit_rules()
|
||||
return
|
||||
}
|
||||
|
||||
args := flag.Args()
|
||||
if len(args) == 0 {
|
||||
/* get the filenames */
|
||||
|
|
Loading…
Reference in New Issue