github.com/amane3/goreleaser@v0.182.0/internal/pipe/project/project.go (about)

     1  // Package project sets "high level" defaults related to the project.
     2  package project
     3  
     4  import (
     5  	"fmt"
     6  
     7  	"github.com/amane3/goreleaser/pkg/context"
     8  )
     9  
    10  // Pipe implemens defaulter to set the project name.
    11  type Pipe struct{}
    12  
    13  func (Pipe) String() string {
    14  	return "project name"
    15  }
    16  
    17  // Default set project defaults.
    18  func (Pipe) Default(ctx *context.Context) error {
    19  	if ctx.Config.ProjectName == "" {
    20  		switch {
    21  		case ctx.Config.Release.GitHub.Name != "":
    22  			ctx.Config.ProjectName = ctx.Config.Release.GitHub.Name
    23  		case ctx.Config.Release.GitLab.Name != "":
    24  			ctx.Config.ProjectName = ctx.Config.Release.GitLab.Name
    25  		case ctx.Config.Release.Gitea.Name != "":
    26  			ctx.Config.ProjectName = ctx.Config.Release.Gitea.Name
    27  		default:
    28  			return fmt.Errorf("couldn't guess project_name, please add it to your config")
    29  		}
    30  	}
    31  	return nil
    32  }