cmd/relnote: make Go root directory a flag

It is a better way to represent that it is optional.

For golang/go#64169.

Change-Id: I7de85aa6615cfc27fc4a82fc0fa5d5892cd9ebea
Reviewed-on: https://go-review.googlesource.com/c/build/+/584302
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/cmd/relnote/relnote.go b/cmd/relnote/relnote.go
index d58cb0f..e24d6c8 100644
--- a/cmd/relnote/relnote.go
+++ b/cmd/relnote/relnote.go
@@ -18,13 +18,16 @@
 	"time"
 )
 
-var verbose = flag.Bool("v", false, "print verbose logging")
+var (
+	verbose = flag.Bool("v", false, "print verbose logging")
+	goroot  = flag.String("goroot", runtime.GOROOT(), "root of Go repo containing docs")
+)
 
 func usage() {
 	out := flag.CommandLine.Output()
 	fmt.Fprintf(out, "usage:\n")
-	fmt.Fprintf(out, "   relnote generate [GOROOT]\n")
-	fmt.Fprintf(out, "      generate release notes from doc/next under GOROOT (default: runtime.GOROOT())\n")
+	fmt.Fprintf(out, "   relnote generate\n")
+	fmt.Fprintf(out, "      generate release notes from doc/next\n")
 	fmt.Fprintf(out, "   relnote todo PREVIOUS_RELEASE_DATE\n")
 	fmt.Fprintf(out, "      report which release notes need to be written; use YYYY-MM-DD format for date of last release\n")
 	flag.PrintDefaults()
@@ -36,13 +39,8 @@
 	flag.Usage = usage
 	flag.Parse()
 
-	goroot := runtime.GOROOT()
-	if goroot == "" {
-		log.Fatalf("missing GOROOT")
-	}
-
 	// Read internal/goversion to find the next release.
-	data, err := os.ReadFile(filepath.Join(goroot, "src/internal/goversion/goversion.go"))
+	data, err := os.ReadFile(filepath.Join(*goroot, "src/internal/goversion/goversion.go"))
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -66,7 +64,7 @@
 			if err != nil {
 				log.Fatalf("previous release date: %s", err)
 			}
-			nextDir := filepath.Join(goroot, "doc", "next")
+			nextDir := filepath.Join(*goroot, "doc", "next")
 			err = todo(os.Stdout, os.DirFS(nextDir), prevDateTime)
 		default:
 			err = fmt.Errorf("unknown command %q", cmd)