1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-24 04:16:27 +02:00
goreleaser/config/config.go

70 lines
1.2 KiB
Go
Raw Normal View History

2016-12-21 10:35:34 -02:00
package config
import (
"io/ioutil"
yaml "gopkg.in/yaml.v1"
)
// Homebrew contains the brew section
type Homebrew struct {
2017-01-17 08:33:43 -02:00
Repo string
Folder string
Caveats string
Dependencies []string
2016-12-21 10:35:34 -02:00
}
// Hooks define actions to run before and/or after something
type Hooks struct {
Pre string
Post string
}
// Build contains the build configuration section
type Build struct {
Goos []string
Goarch []string
Main string
Ldflags string
BinaryName string `yaml:"binary_name"`
Hooks Hooks
2016-12-21 11:37:31 -02:00
}
// Archive config used for the archive
type Archive struct {
2017-01-14 14:06:57 -02:00
Format string
NameTemplate string `yaml:"name_template"`
Replacements map[string]string
Files []string
}
// Release config used for the GitHub release
type Release struct {
Repo string
2017-01-14 14:06:57 -02:00
}
2017-01-29 21:55:32 -02:00
// FPM config
type FPM struct {
2017-01-29 22:33:08 -02:00
Formats []string
Dependencies []string
2017-01-29 21:55:32 -02:00
}
// Project includes all project configuration
type Project struct {
Release Release
Brew Homebrew
Build Build
Archive Archive
2017-01-29 21:55:32 -02:00
FPM FPM `yaml:"fpm"`
2016-12-21 10:35:34 -02:00
}
2016-12-30 12:41:59 -02:00
// Load config file
func Load(file string) (config Project, err error) {
2016-12-21 10:35:34 -02:00
data, err := ioutil.ReadFile(file)
if err != nil {
return config, err
}
2017-01-14 12:34:22 -02:00
err = yaml.Unmarshal(data, &config)
return
}