cleanenv icon indicating copy to clipboard operation
cleanenv copied to clipboard

read config from io.Reader

Open dlsrb6342 opened this issue 3 years ago • 0 comments

I want to use embed config files. But ReadConfig() only use file path. If I can use io.Reader for parseFile() like below, it would be nice. What do you think?

Or, If there is any way to use embed files, please let me know.

func ReadConfigFromReader(r io.Reader, cfg interface{}) {
	err := parseFile(r, cfg)
	if err != nil {
		return err
	}

	return readEnvVars(cfg, false)
}

func ReadConfig(path string, cfg interface{}) {
	f, err := os.OpenFile(path, os.O_RDONLY|os.O_SYNC, 0)
	if err != nil {
		return err
	}
	defer f.Close()

	err := parseFile(f, cfg)
	if err != nil {
		return err
	}

	return readEnvVars(cfg, false)
}

dlsrb6342 avatar Jan 24 '22 14:01 dlsrb6342