github.com/goreleaser/goreleaser@v1.25.1/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/goreleaser/goreleaser/internal/logext" 10 "github.com/goreleaser/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 [6]string{ 31 ".config/goreleaser.yml", 32 ".config/goreleaser.yaml", 33 ".goreleaser.yml", 34 ".goreleaser.yaml", 35 "goreleaser.yml", 36 "goreleaser.yaml", 37 } { 38 proj, err := config.Load(f) 39 if err != nil && errors.Is(err, fs.ErrNotExist) { 40 continue 41 } 42 return proj, f, err 43 } 44 // the user didn't specify a config file and the known possible file names 45 // don't exist, so, return an empty config and a nil err. 46 log.Warn(logext.Warning("could not find a configuration file, using defaults...")) 47 return config.Project{}, "", nil 48 }