code: func ExecCmd(name string, args ...string) (string, error) {
  	cmd := exec.Command(name, args...)
  	var stdout bytes.Buffer
  	var stderr bytes.Buffer
  	cmd.Stdout = &stdout
  	cmd.Stderr = &stderr
  	if v, found := os.LookupEnv("XDG_RUNTIME_DIR"); found {
  		cmd.Env = append(cmd.Env, fmt.Sprintf("XDG_RUNTIME_DIR=%s", v))
  	}
  
  	err := cmd.Run()
  	if err != nil {
  		return "", fmt.Errorf("`%v %v` failed: %v %v (%v)", name, strings.Join(args, " "), stderr.String(), stdout.String(), err)
  	}
  
  	return stdout.String(), nil
  }
docs: // ExecCmd executes a command with args and returns its output as a string along
  // with an error, if any