code: func (o *copier) getCopyInfosForSourcePaths(sources []string, dest string) ([]copyInfo, error) {
  	var infos []copyInfo
  	for _, orig := range sources {
  		subinfos, err := o.getCopyInfoForSourcePath(orig, dest)
  		if err != nil {
  			return nil, err
  		}
  		infos = append(infos, subinfos...)
  	}
  
  	if len(infos) == 0 {
  		return nil, errors.New("no source files were specified")
  	}
  	return infos, nil
  }
docs: // getCopyInfosForSourcePaths iterates over the source files and calculate the info
  // needed to copy (e.g. hash value if cached)
  // The dest is used in case source is URL (and ends with "/")