github.com/joselitofilho/goreleaser@v0.155.1-0.20210123221854-e4891856c593/internal/extrafiles/extra_files.go (about)

     1  package extrafiles
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"path/filepath"
     7  
     8  	"github.com/apex/log"
     9  	"github.com/goreleaser/fileglob"
    10  	"github.com/goreleaser/goreleaser/pkg/config"
    11  )
    12  
    13  // Find resolves extra files globs et al into a map of names/paths or an error.
    14  func Find(files []config.ExtraFile) (map[string]string, error) {
    15  	var result = map[string]string{}
    16  	for _, extra := range files {
    17  		if extra.Glob == "" {
    18  			continue
    19  		}
    20  		files, err := fileglob.Glob(extra.Glob)
    21  		if err != nil {
    22  			return result, fmt.Errorf("globbing failed for pattern %s: %w", extra.Glob, err)
    23  		}
    24  		for _, file := range files {
    25  			info, err := os.Stat(file)
    26  			if err == nil && info.IsDir() {
    27  				log.Debugf("ignoring directory %s", file)
    28  				continue
    29  			}
    30  			var name = filepath.Base(file)
    31  			if old, ok := result[name]; ok {
    32  				log.Warnf("overriding %s with %s for name %s", old, file, name)
    33  			}
    34  			result[name] = file
    35  		}
    36  	}
    37  	return result, nil
    38  }