mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-17 20:47:50 +02:00
refactor: moving config load logic to another file
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
parent
305663fb5d
commit
c54e530902
@ -5,14 +5,11 @@ package config
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/fs"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/goreleaser/goreleaser/internal/logext"
|
||||
"github.com/goreleaser/goreleaser/internal/yaml"
|
||||
"github.com/goreleaser/nfpm/v2/files"
|
||||
"github.com/invopop/jsonschema"
|
||||
)
|
||||
@ -1359,45 +1356,6 @@ type OpenCollective struct {
|
||||
MessageTemplate string `yaml:"message_template,omitempty" json:"message_template,omitempty"`
|
||||
}
|
||||
|
||||
// Load config file.
|
||||
func Load(file string) (config Project, err error) {
|
||||
f, err := os.Open(file) // #nosec
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer f.Close()
|
||||
return LoadReader(f)
|
||||
}
|
||||
|
||||
type VersionError struct {
|
||||
current int
|
||||
}
|
||||
|
||||
func (e VersionError) Error() string {
|
||||
return fmt.Sprintf(
|
||||
"only configurations files on %s are supported, yours is %s, please update your configuration",
|
||||
logext.Keyword("version: 1"),
|
||||
logext.Keyword(fmt.Sprintf("version: %d", e.current)),
|
||||
)
|
||||
}
|
||||
|
||||
// LoadReader config via io.Reader.
|
||||
func LoadReader(fd io.Reader) (config Project, err error) {
|
||||
data, err := io.ReadAll(fd)
|
||||
if err != nil {
|
||||
return config, err
|
||||
}
|
||||
|
||||
var versioned Versioned
|
||||
_ = yaml.Unmarshal(data, &versioned)
|
||||
if versioned.Version != 0 && versioned.Version != 1 {
|
||||
return config, VersionError{versioned.Version}
|
||||
}
|
||||
|
||||
err = yaml.UnmarshalStrict(data, &config)
|
||||
return config, err
|
||||
}
|
||||
|
||||
// SlackBlock represents the untyped structure of a rich slack message layout.
|
||||
type SlackBlock struct {
|
||||
Internal interface{}
|
||||
|
51
pkg/config/load.go
Normal file
51
pkg/config/load.go
Normal file
@ -0,0 +1,51 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
||||
"github.com/goreleaser/goreleaser/internal/logext"
|
||||
"github.com/goreleaser/goreleaser/internal/yaml"
|
||||
)
|
||||
|
||||
// VersionError will happen if the goreleaser config file version does not
|
||||
// match the current GoReleaser version.
|
||||
type VersionError struct {
|
||||
current int
|
||||
}
|
||||
|
||||
func (e VersionError) Error() string {
|
||||
return fmt.Sprintf(
|
||||
"only configurations files on %s are supported, yours is %s, please update your configuration",
|
||||
logext.Keyword("version: 1"),
|
||||
logext.Keyword(fmt.Sprintf("version: %d", e.current)),
|
||||
)
|
||||
}
|
||||
|
||||
// Load config file.
|
||||
func Load(file string) (config Project, err error) {
|
||||
f, err := os.Open(file) // #nosec
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer f.Close()
|
||||
return LoadReader(f)
|
||||
}
|
||||
|
||||
// LoadReader config via io.Reader.
|
||||
func LoadReader(fd io.Reader) (config Project, err error) {
|
||||
data, err := io.ReadAll(fd)
|
||||
if err != nil {
|
||||
return config, err
|
||||
}
|
||||
|
||||
var versioned Versioned
|
||||
_ = yaml.Unmarshal(data, &versioned)
|
||||
if versioned.Version != 0 && versioned.Version != 1 {
|
||||
return config, VersionError{versioned.Version}
|
||||
}
|
||||
|
||||
err = yaml.UnmarshalStrict(data, &config)
|
||||
return config, err
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user