package config import ( "os" "git.badhouseplants.net/allanger/shoebill/pkg/cluster" "git.badhouseplants.net/allanger/shoebill/pkg/release" "git.badhouseplants.net/allanger/shoebill/pkg/repository" "gopkg.in/yaml.v2" ) type Config struct { Repositories repository.Repositories Releases release.Releases Clusters cluster.Clusters ConfigPath string `yaml:"-"` SopsBin string `yaml:"-"` } // NewConfigFromFile populates the config struct from a configuration yaml file func NewConfigFromFile(path string) (*Config, error) { var config Config configFile, err := os.ReadFile(path) if err != nil { return nil, err } if err := yaml.Unmarshal(configFile, &config); err != nil { return nil, err } config.ConfigPath = path return &config, nil }