code: func goRun(argv []string) []string {
  	cmd := exec.Command(argv[0], argv[1:]...)
  	stdout := new(bytes.Buffer)
  	stderr := new(bytes.Buffer)
  	cmd.Stdout = stdout
  	cmd.Stderr = stderr
  	if err := cmd.Run(); err != nil {
  		common.Die("Error running %s: %v: %s", strings.Join(argv, " "), err, stderr.String())
  	}
  	rawLines := strings.Split(stdout.String(), "\n")
  	lines := make([]string, 0, len(rawLines))
  	for _, line := range rawLines {
  		if trimmed := strings.TrimSpace(line); trimmed != "" {
  			lines = append(lines, trimmed)
  		}
  	}
  	return lines
  }
docs: // goRun executes given argument list and captures its output. The
  // output is sliced into lines with empty lines being discarded.