code: func getVersions() {
  	pkBin := filepath.Join(workDir, runtime.GOOS, "bin", "perkeepd")
  	cmd := exec.Command(pkBin, "-version")
  	var buf bytes.Buffer
  	cmd.Stderr = &buf
  	if err := cmd.Run(); err != nil {
  		log.Fatalf("Error getting version from perkeepd: %v, %v", err, buf.String())
  	}
  	sc := bufio.NewScanner(&buf)
  	for sc.Scan() {
  		l := sc.Text()
  		fields := strings.Fields(l)
  		if pkVersion == "" {
  			if len(fields) != 4 || fields[0] != "perkeepd" {
  				log.Fatalf("Unexpected perkeepd -version output: %q", l)
  			}
  			pkVersion = fields[3]
  			continue
  		}
  		if len(fields) != 4 || fields[0] != "Go" {
  			log.Fatalf("Unexpected perkeepd -version output: %q", l)
  		}
  		goVersion = fields[2]
  		break
  	}
  	if err := sc.Err(); err != nil {
  		log.Fatal(err)
  	}
  }
docs: // getVersions uses the freshly built perkeepd binary to get the Perkeep and Go
  // versions used to build the release.