github.com/windmeup/goreleaser@v1.21.95/cmd/config.go (about)

     1  package cmd
     2  
     3  import (
     4  	"errors"
     5  	"io/fs"
     6  	"os"
     7  
     8  	"github.com/caarlos0/log"
     9  	"github.com/windmeup/goreleaser/internal/logext"
    10  	"github.com/windmeup/goreleaser/pkg/config"
    11  )
    12  
    13  func loadConfig(path string) (config.Project, error) {
    14  	p, path, err := loadConfigCheck(path)
    15  	if err == nil {
    16  		log.WithField("path", path).Info("loading")
    17  	}
    18  	return p, err
    19  }
    20  
    21  func loadConfigCheck(path string) (config.Project, string, error) {
    22  	if path == "-" {
    23  		p, err := config.LoadReader(os.Stdin)
    24  		return p, path, err
    25  	}
    26  	if path != "" {
    27  		p, err := config.Load(path)
    28  		return p, path, err
    29  	}
    30  	for _, f := range [4]string{
    31  		".goreleaser.yml",
    32  		".goreleaser.yaml",
    33  		"goreleaser.yml",
    34  		"goreleaser.yaml",
    35  	} {
    36  		proj, err := config.Load(f)
    37  		if err != nil && errors.Is(err, fs.ErrNotExist) {
    38  			continue
    39  		}
    40  		return proj, f, err
    41  	}
    42  	// the user didn't specify a config file and the known possible file names
    43  	// don't exist, so, return an empty config and a nil err.
    44  	log.Warn(logext.Warning("could not find a configuration file, using defaults..."))
    45  	return config.Project{}, "", nil
    46  }