code: func SelfPath() (string, error) {
  	if f := osSelfPath; f != nil {
  		return f()
  	}
  	switch runtime.GOOS {
  	case "linux":
  		return "/proc/self/exe", nil
  	case "netbsd":
  		return "/proc/curproc/exe", nil
  	case "openbsd":
  		return "/proc/curproc/file", nil
  	case "darwin":
  		// TODO(mpl): maybe do the right thing for darwin too, but that may require changes to runtime.
  		// See https://codereview.appspot.com/6736069/
  		return exec.LookPath(os.Args[0])
  	}
  	return "", errors.New("SelfPath not implemented for " + runtime.GOOS)
  }
docs: // TODO(mpl): document the symlink behaviour in SelfPath for the BSDs when
  // I know for sure.
  // SelfPath returns the path of the executable for the currently running
  // process. At least on linux, the returned path is a symlink to the actual
  // executable.