cmd/genbootstrap: assign usage to flag.Usage

Assigning usage to flag.Usage makes it get picked up by flag.Parse
when the -help flag is specified.

This makes the usage printing more consistent and helpful.

Before:

	$ ./genbootstrap -help
	Usage of ./genbootstrap:
	  -skip_build
	    	skip bootstrap.bash step; useful during development of cleaning code
	$ ./genbootstrap
	2018/10/10 13:34:01 Usage: genbootstrap GOOS/GOARCH

After:

	$ ./genbootstrap -help
	Usage: genbootstrap GOOS/GOARCH
	  -skip_build
	    	skip bootstrap.bash step; useful during development of cleaning code
	$ ./genbootstrap
	Usage: genbootstrap GOOS/GOARCH
	  -skip_build
	    	skip bootstrap.bash step; useful during development of cleaning code

Change-Id: Ia5553bf452d85842eed926aca5a7fc36dc7cdf47
Reviewed-on: https://go-review.googlesource.com/c/141177
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/cmd/genbootstrap/genbootstrap.go b/cmd/genbootstrap/genbootstrap.go
index 7fa742b..65b73c0 100644
--- a/cmd/genbootstrap/genbootstrap.go
+++ b/cmd/genbootstrap/genbootstrap.go
@@ -14,6 +14,7 @@
 
 import (
 	"flag"
+	"fmt"
 	"log"
 	"os"
 	"os/exec"
@@ -24,17 +25,21 @@
 var skipBuild = flag.Bool("skip_build", false, "skip bootstrap.bash step; useful during development of cleaning code")
 
 func usage() {
-	log.Fatalf("Usage: genbootstrap GOOS/GOARCH")
+	fmt.Fprintln(os.Stderr, "Usage: genbootstrap GOOS/GOARCH")
+	flag.PrintDefaults()
 }
 
 func main() {
+	flag.Usage = usage
 	flag.Parse()
 	if flag.NArg() != 1 {
-		usage()
+		flag.Usage()
+		os.Exit(2)
 	}
 	f := strings.Split(flag.Arg(0), "/")
 	if len(f) != 2 {
-		usage()
+		flag.Usage()
+		os.Exit(2)
 	}
 	goos, goarch := f[0], f[1]
 	if os.Getenv("GOROOT") == "" {