func NewConfigFromFile()

in pkg/config/config.go [97:124]


func NewConfigFromFile(filename string) (Config, error) {
	var err error
	var bytes []byte

	// attempt to read configuration from specified file
	logger.Log.Infoln("Loading configuration from file:", filename)

	if bytes, err = os.ReadFile(filename); err != nil && !os.IsNotExist(err) {
		return nil, err
	}

	if os.IsNotExist(err) {
		logger.Log.Infof("Config file %s does not exist, using the default config", filename)

		if bytes, err = assets.Asset("default-config.yaml"); err != nil {
			return nil, err
		}
	}

	var config Config
	if config, err = ParseV2(filename, bytes); err == nil {
		return config, nil
	}
	if config, err = ParseV1(filename, bytes); err != nil {
		return nil, err
	}
	return config, nil
}