github.com/jvandenbroek/directory_stat_exporter@v0.2.0/cfg/config.go (about)

     1  package cfg
     2  
     3  import (
     4  	"gopkg.in/yaml.v2"
     5  	"io/ioutil"
     6  	"log"
     7  )
     8  
     9  type Dir struct {
    10  	Name      string
    11  	Path      string
    12  	Recursive bool
    13  }
    14  type Config struct {
    15  	ServicePort string
    16  	CacheTime   int
    17  	Directories []Dir
    18  }
    19  
    20  func GetConfig(fileName string) Config {
    21  	Cfg := Config{}
    22  	// set default values
    23  	Cfg.ServicePort = "9999"
    24  	Cfg.CacheTime = 5
    25  
    26  	var cfgFile = "config.yml"
    27  	if fileName != "" {
    28  		cfgFile = fileName
    29  	}
    30  	cfgFileBytes, err := ioutil.ReadFile(cfgFile)
    31  	if err != nil {
    32  		log.Print("unable to load config", err)
    33  	} else {
    34  		err = yaml.Unmarshal(cfgFileBytes, &Cfg)
    35  		if err != nil {
    36  			log.Print("unable to load config", err)
    37  		}
    38  	}
    39  
    40  	return Cfg
    41  }