package config import ( "os" "git.badhouseplants.net/allanger/shoebill/pkg/chart" "git.badhouseplants.net/allanger/shoebill/pkg/cluster" "git.badhouseplants.net/allanger/shoebill/pkg/mirror" "git.badhouseplants.net/allanger/shoebill/pkg/release" "git.badhouseplants.net/allanger/shoebill/pkg/repository" "github.com/sirupsen/logrus" "gopkg.in/yaml.v2" ) type Config struct { Repositories repository.Repositories Releases release.Releases Clusters cluster.Clusters Charts chart.Charts Mirrors mirror.Mirrors 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 logrus.Infof("readig 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 } config.ConfigPath = path return &config, nil }