github.com/amane3/goreleaser@v0.182.0/internal/pipe/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 "strings" 7 8 "github.com/amane3/goreleaser/internal/client" 9 "github.com/amane3/goreleaser/internal/middleware" 10 "github.com/amane3/goreleaser/pkg/context" 11 "github.com/amane3/goreleaser/pkg/defaults" 12 ) 13 14 // Pipe that sets the defaults. 15 type Pipe struct{} 16 17 func (Pipe) String() string { 18 return "setting defaults" 19 } 20 21 // Run the pipe. 22 func (Pipe) Run(ctx *context.Context) error { 23 if ctx.Config.Dist == "" { 24 ctx.Config.Dist = "dist" 25 } 26 if ctx.Config.GitHubURLs.Download == "" { 27 ctx.Config.GitHubURLs.Download = client.DefaultGitHubDownloadURL 28 } 29 if ctx.Config.GitLabURLs.Download == "" { 30 ctx.Config.GitLabURLs.Download = client.DefaultGitLabDownloadURL 31 } 32 if ctx.Config.GiteaURLs.Download == "" { 33 ctx.Config.GiteaURLs.Download = strings.ReplaceAll(ctx.Config.GiteaURLs.API, "/api/v1", "") 34 } 35 for _, defaulter := range defaults.Defaulters { 36 if err := middleware.Logging( 37 defaulter.String(), 38 middleware.ErrHandler(defaulter.Default), 39 middleware.ExtraPadding, 40 )(ctx); err != nil { 41 return err 42 } 43 } 44 return nil 45 }