cmd/releasebot: remove support for parallel releases

The output would end up mixed to the point of being useless. releasebot
now supports parallelism at the terminal tab level.

Change-Id: I291954a88884452e71d3e3d0416301453aec8374
Reviewed-on: https://go-review.googlesource.com/c/154340
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/cmd/releasebot/main.go b/cmd/releasebot/main.go
index 6825422..69f0e16 100644
--- a/cmd/releasebot/main.go
+++ b/cmd/releasebot/main.go
@@ -64,7 +64,7 @@
 	security := flag.Bool("security", false, "cut a security release from the internal Gerrit")
 	flag.Usage = usage
 	flag.Parse()
-	if *modeFlag == "" || !releaseModes[*modeFlag] || flag.NArg() == 0 {
+	if *modeFlag == "" || !releaseModes[*modeFlag] || flag.NArg() != 1 {
 		usage()
 	}
 
@@ -77,58 +77,48 @@
 	loadGithubAuth()
 	loadGCSAuth()
 
-	var wg sync.WaitGroup
-	for _, release := range flag.Args() {
-		if strings.Contains(release, "beta") || strings.Contains(release, "rc") {
-			if *security {
-				log.Printf("error: only minor releases are supported in security mode")
-				usage()
+	release := flag.Arg(0)
+
+	if strings.Contains(release, "beta") || strings.Contains(release, "rc") {
+		if *security {
+			log.Printf("error: only minor releases are supported in security mode")
+			usage()
+		}
+		w := &Work{
+			Prepare:     *modeFlag == "prepare",
+			Version:     release,
+			BetaRelease: strings.Contains(release, "beta"),
+			RCRelease:   strings.Contains(release, "rc"),
+		}
+		w.doRelease()
+		return
+	}
+
+	errFoundMilestone := errors.New("found milestone")
+	err := goRepo.ForeachMilestone(func(m *maintner.GitHubMilestone) error {
+		if strings.ToLower(m.Title) == release {
+			nextM, err := nextMilestone(m)
+			if err != nil {
+				return err
 			}
 			w := &Work{
-				Prepare:     *modeFlag == "prepare",
-				Version:     release,
-				BetaRelease: strings.Contains(release, "beta"),
-				RCRelease:   strings.Contains(release, "rc"),
+				Milestone:     m,
+				NextMilestone: nextM,
+				Prepare:       *modeFlag == "prepare",
+				Version:       release,
+				Security:      *security,
 			}
-			wg.Add(1)
-			go func() {
-				defer wg.Done()
-				w.doRelease()
-			}()
-			continue
+			w.doRelease()
+			return errFoundMilestone
 		}
-
-		errFoundMilestone := errors.New("found milestone")
-		err := goRepo.ForeachMilestone(func(m *maintner.GitHubMilestone) error {
-			if strings.ToLower(m.Title) == release {
-				nextM, err := nextMilestone(m)
-				if err != nil {
-					return err
-				}
-				w := &Work{
-					Milestone:     m,
-					NextMilestone: nextM,
-					Prepare:       *modeFlag == "prepare",
-					Version:       release,
-					Security:      *security,
-				}
-				wg.Add(1)
-				go func() {
-					defer wg.Done()
-					w.doRelease()
-				}()
-				return errFoundMilestone
-			}
-			return nil
-		})
-		if err != nil && err != errFoundMilestone {
-			log.Printf("error looking for release %s: %v", release, err)
-		}
-		if err == nil {
-			log.Printf("cannot find release %s", release)
-		}
+		return nil
+	})
+	if err != nil && err != errFoundMilestone {
+		log.Fatalf("error looking for release %s: %v", release, err)
 	}
-	wg.Wait()
+	if err == nil {
+		log.Fatalf("cannot find release %s", release)
+	}
 }
 
 func nextMilestone(m *maintner.GitHubMilestone) (*maintner.GitHubMilestone, error) {