code: func genWebUIReact() error {
  	args := []string{"generate", "-v", "perkeep.org/server/perkeepd/ui/goui/..."}
  
  	path := strings.Join([]string{
  		binDir,
  		os.Getenv("PATH"),
  	}, string(os.PathListSeparator))
  
  	cmd := exec.Command("go", args...)
  	cmd.Env = os.Environ()
  	cmd.Env = append(cmd.Env, "PATH="+path)
  	var buf bytes.Buffer
  	cmd.Stderr = &buf
  	cmd.Env = append(os.Environ(), "GO111MODULE=off")
  	err := cmd.Run()
  	if err != nil {
  		return fmt.Errorf("go generate for web UI error: %v, %v", err, buf.String())
  	}
  	if *verbose {
  		fmt.Println(buf.String())
  	}
  	return nil
  }
docs: // genWebUIReact runs go generate on the gopherjs code of the web UI, which
  // invokes reactGen on the Go React components. This generates the boilerplate
  // code, in gen_*_reactGen.go files, required to complete those components.