mirror of
https://github.com/golang/go
synced 2024-11-18 15:34:53 -07:00
cmd/go-contrib-init: add git-codereview bits
Updates golang/go#17802 Change-Id: Ic5278804203029926dd5a26e571f79aaafb13110 Reviewed-on: https://go-review.googlesource.com/45080 Reviewed-by: Steve Francia <spf@golang.org>
This commit is contained in:
parent
fe66dd2e3e
commit
154c88c09d
@ -21,7 +21,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
var repo = flag.String("repo", "go", "Which go repo you want to contribute to. Use \"go\" for the core, or e.g. \"net\" for golang.org/x/net/*")
|
var (
|
||||||
|
repo = flag.String("repo", "go", "Which go repo you want to contribute to. Use \"go\" for the core, or e.g. \"net\" for golang.org/x/net/*")
|
||||||
|
dry = flag.Bool("dry-run", false, "Fail with problems instead of trying to fix things.")
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
log.SetFlags(0)
|
log.SetFlags(0)
|
||||||
@ -31,6 +34,7 @@ func main() {
|
|||||||
checkGoroot()
|
checkGoroot()
|
||||||
checkWorkingDir()
|
checkWorkingDir()
|
||||||
checkGitOrigin()
|
checkGitOrigin()
|
||||||
|
checkGitCodeReview()
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkCLA() {
|
func checkCLA() {
|
||||||
@ -106,6 +110,7 @@ func checkGitOrigin() {
|
|||||||
}
|
}
|
||||||
if !strings.Contains(line, wantRemote) {
|
if !strings.Contains(line, wantRemote) {
|
||||||
curRemote := strings.Fields(strings.TrimPrefix(line, "origin"))[0]
|
curRemote := strings.Fields(strings.TrimPrefix(line, "origin"))[0]
|
||||||
|
// TODO: if not in dryRun mode, just fix it?
|
||||||
log.Fatalf("Current directory's git was cloned from %q; origin should be %q", curRemote, wantRemote)
|
log.Fatalf("Current directory's git was cloned from %q; origin should be %q", curRemote, wantRemote)
|
||||||
}
|
}
|
||||||
matches++
|
matches++
|
||||||
@ -121,3 +126,28 @@ func cmdErr(err error) string {
|
|||||||
}
|
}
|
||||||
return fmt.Sprint(err)
|
return fmt.Sprint(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkGitCodeReview() {
|
||||||
|
if _, err := exec.LookPath("git-codereview"); err != nil {
|
||||||
|
if *dry {
|
||||||
|
log.Fatalf("You don't appear to have git-codereview tool. While this is technically optional,\n" +
|
||||||
|
"almost all Go contributors use it. Our documentation and this tool assume it is used.\n" +
|
||||||
|
"To install it, run:\n\n\t$ go get golang.org/x/review/git-codereview\n\n(Then run go-contrib-init again)")
|
||||||
|
}
|
||||||
|
err := exec.Command("go", "get", "golang.org/x/review/git-codereview").Run()
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error running go get golang.org/x/review/git-codereview: %v", cmdErr(err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if *dry {
|
||||||
|
// TODO: check the aliases. For now, just return.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, cmd := range []string{"change", "gofmt", "mail", "pending", "submit", "sync"} {
|
||||||
|
err := exec.Command("git", "config", "alias."+cmd, "codereview "+cmd).Run()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Error setting alias.%s: %v", cmd, cmdErr(err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user