shoebill/internal/config/config.go

34 lines
860 B
Go
Raw Normal View History

2023-07-20 09:26:25 +00:00
package config
import (
"os"
2023-08-02 15:00:34 +00:00
"git.badhouseplants.net/allanger/shoebill/internal/config/cluster"
"git.badhouseplants.net/allanger/shoebill/internal/config/release"
"git.badhouseplants.net/allanger/shoebill/internal/config/repository"
2023-07-20 09:26:25 +00:00
"github.com/sirupsen/logrus"
"gopkg.in/yaml.v2"
)
type Config struct {
Repositories repository.Repositories
Releases release.Releases
Clusters cluster.Clusters
2023-09-22 11:02:56 +00:00
ConfigPath string `yaml:"-"`
2023-07-20 09:26:25 +00:00
}
// NewConfigFromFile populates the config struct from a configuration yaml file
func NewConfigFromFile(path string) (*Config, error) {
var config Config
logrus.Infof("reading the config file: %s", path)
configFile, err := os.ReadFile(path)
if err != nil {
return nil, err
}
if err := yaml.Unmarshal(configFile, &config); err != nil {
return nil, err
}
2023-09-22 11:02:56 +00:00
config.ConfigPath = path
2023-07-20 09:26:25 +00:00
return &config, nil
}