Remove the GeneratingPrimaryBuilder() method.

It's replaced with a flag in bootstrap.Args. It's a little bit ugly that
bootstrap.Main also gained a new Boolean flag in the process. The plan
is to delete that method in favor of directly calling RunBlueprint().

Test: "m nothing" (presubmits take a full workday these days)
Change-Id: Iae3421ae517a90570259b6278f18c3614bb1bb73
diff --git a/bootstrap/command.go b/bootstrap/command.go
index 93daee6..c5cfe61 100644
--- a/bootstrap/command.go
+++ b/bootstrap/command.go
@@ -32,21 +32,22 @@
 )
 
 type Args struct {
-	OutFile        string
-	GlobFile       string
-	DepFile        string
-	DocFile        string
-	Cpuprofile     string
-	Memprofile     string
-	TraceFile      string
-	RunGoTests     bool
-	UseValidations bool
-	NoGC           bool
-	EmptyNinjaFile bool
-	BuildDir       string
-	ModuleListFile string
-	NinjaBuildDir  string
-	TopFile        string
+	OutFile                  string
+	GlobFile                 string
+	DepFile                  string
+	DocFile                  string
+	Cpuprofile               string
+	Memprofile               string
+	TraceFile                string
+	RunGoTests               bool
+	UseValidations           bool
+	NoGC                     bool
+	EmptyNinjaFile           bool
+	BuildDir                 string
+	ModuleListFile           string
+	NinjaBuildDir            string
+	TopFile                  string
+	GeneratingPrimaryBuilder bool
 }
 
 var (
@@ -85,7 +86,7 @@
 	flag.BoolVar(&cmdline.EmptyNinjaFile, "empty-ninja-file", false, "write out a 0-byte ninja file")
 }
 
-func Main(ctx *blueprint.Context, config interface{}, extraNinjaFileDeps ...string) {
+func Main(ctx *blueprint.Context, config interface{}, generatingPrimaryBuilder bool, extraNinjaFileDeps ...string) {
 	if !flag.Parsed() {
 		flag.Parse()
 	}
@@ -95,6 +96,7 @@
 	}
 
 	cmdline.TopFile = flag.Arg(0)
+	cmdline.GeneratingPrimaryBuilder = generatingPrimaryBuilder
 	RunBlueprint(cmdline, ctx, config, extraNinjaFileDeps...)
 }
 
@@ -143,10 +145,8 @@
 	buildDir := args.BuildDir
 
 	stage := StageMain
-	if c, ok := config.(interface{ GeneratingPrimaryBuilder() bool }); ok {
-		if c.GeneratingPrimaryBuilder() {
-			stage = StagePrimary
-		}
+	if args.GeneratingPrimaryBuilder {
+		stage = StagePrimary
 	}
 
 	bootstrapConfig := &Config{
diff --git a/bootstrap/minibp/main.go b/bootstrap/minibp/main.go
index bc77226..00ba865 100644
--- a/bootstrap/minibp/main.go
+++ b/bootstrap/minibp/main.go
@@ -23,18 +23,12 @@
 )
 
 var runAsPrimaryBuilder bool
-var buildPrimaryBuilder bool
 
 func init() {
 	flag.BoolVar(&runAsPrimaryBuilder, "p", false, "run as a primary builder")
 }
 
 type Config struct {
-	generatingPrimaryBuilder bool
-}
-
-func (c Config) GeneratingPrimaryBuilder() bool {
-	return c.generatingPrimaryBuilder
 }
 
 func (c Config) SrcDir() string {
@@ -42,7 +36,7 @@
 }
 
 func (c Config) RemoveAbandonedFilesUnder(buildDir string) (under, exempt []string) {
-	if c.generatingPrimaryBuilder {
+	if !runAsPrimaryBuilder {
 		under = []string{filepath.Join(buildDir, ".bootstrap")}
 		exempt = []string{filepath.Join(buildDir, ".bootstrap", "build.ninja")}
 	}
@@ -57,9 +51,6 @@
 		ctx.SetIgnoreUnknownModuleTypes(true)
 	}
 
-	config := Config{
-		generatingPrimaryBuilder: !runAsPrimaryBuilder,
-	}
-
-	bootstrap.Main(ctx, config)
+	config := Config{}
+	bootstrap.Main(ctx, config, !runAsPrimaryBuilder)
 }