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,10 +258,40 @@ func glob_to_regex(glob string) string {
|
||||||
return "^" + regex + "$"
|
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() {
|
func main() {
|
||||||
var (
|
var (
|
||||||
files []string
|
files []string
|
||||||
err error
|
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")
|
debug = flag.Bool("debug", false, "emit additional debug output")
|
||||||
)
|
)
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
@ -278,6 +308,11 @@ func main() {
|
||||||
print_maintainers()
|
print_maintainers()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if *print_gerrit_rules {
|
||||||
|
do_print_gerrit_rules()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
args := flag.Args()
|
args := flag.Args()
|
||||||
if len(args) == 0 {
|
if len(args) == 0 {
|
||||||
/* get the filenames */
|
/* get the filenames */
|
||||||
|
|
Loading…
Reference in New Issue