github.com/droot/goreleaser@v0.66.2-0.20180420030140-c2db5fb17157/pipeline/defaults/defaults.go (about) 1 // Package defaults implements the Pipe interface providing default values 2 // for missing configuration. 3 package defaults 4 5 import ( 6 "fmt" 7 8 "github.com/apex/log" 9 "github.com/goreleaser/goreleaser/context" 10 "github.com/goreleaser/goreleaser/pipeline/archive" 11 "github.com/goreleaser/goreleaser/pipeline/artifactory" 12 "github.com/goreleaser/goreleaser/pipeline/brew" 13 "github.com/goreleaser/goreleaser/pipeline/build" 14 "github.com/goreleaser/goreleaser/pipeline/checksums" 15 "github.com/goreleaser/goreleaser/pipeline/docker" 16 "github.com/goreleaser/goreleaser/pipeline/env" 17 "github.com/goreleaser/goreleaser/pipeline/fpm" 18 "github.com/goreleaser/goreleaser/pipeline/nfpm" 19 "github.com/goreleaser/goreleaser/pipeline/project" 20 "github.com/goreleaser/goreleaser/pipeline/release" 21 "github.com/goreleaser/goreleaser/pipeline/scoop" 22 "github.com/goreleaser/goreleaser/pipeline/sign" 23 "github.com/goreleaser/goreleaser/pipeline/snapcraft" 24 "github.com/goreleaser/goreleaser/pipeline/snapshot" 25 ) 26 27 // Pipe that sets the defaults 28 type Pipe struct{} 29 30 func (Pipe) String() string { 31 return "setting defaults for:" 32 } 33 34 // Defaulter can be implemented by a Piper to set default values for its 35 // configuration. 36 type Defaulter interface { 37 fmt.Stringer 38 39 // Default sets the configuration defaults 40 Default(ctx *context.Context) error 41 } 42 43 var defaulters = []Defaulter{ 44 env.Pipe{}, 45 snapshot.Pipe{}, 46 release.Pipe{}, 47 project.Pipe{}, 48 archive.Pipe{}, 49 build.Pipe{}, 50 fpm.Pipe{}, 51 nfpm.Pipe{}, 52 snapcraft.Pipe{}, 53 checksums.Pipe{}, 54 sign.Pipe{}, 55 docker.Pipe{}, 56 artifactory.Pipe{}, 57 brew.Pipe{}, 58 scoop.Pipe{}, 59 } 60 61 // Run the pipe 62 func (Pipe) Run(ctx *context.Context) error { 63 if ctx.Config.Dist == "" { 64 ctx.Config.Dist = "dist" 65 } 66 if ctx.Config.GitHubURLs.Download == "" { 67 ctx.Config.GitHubURLs.Download = "https://github.com" 68 } 69 for _, defaulter := range defaulters { 70 log.Info(defaulter.String()) 71 if err := defaulter.Default(ctx); err != nil { 72 return err 73 } 74 } 75 return nil 76 }