code: func Fetcher(source string, timeout time.Duration, ui plugin.UI) (*profile.Profile, error) {
  	var f io.ReadCloser
  	var err error
  
  	url, err := url.Parse(source)
  	if err == nil && url.Host != "" {
  		f, err = FetchURL(source, timeout)
  	} else {
  		f, err = os.Open(source)
  	}
  	if err != nil {
  		return nil, err
  	}
  	defer f.Close()
  	return profile.Parse(f)
  }
docs: // Fetcher is the plugin.Fetcher version of FetchProfile.