statman/config.go

37 lines
697 B
Go

package main
import (
"github.com/spf13/viper"
)
type Script struct {
Filepath string `mapstructure:"filepath"`
Args []string `mapstructure:"args"`
Frequency int64 `mapstructure:"frequency"`
}
type Config struct {
OutputFilepath string `mapstructure:"output_filepath"`
Scripts []Script `mapstructure:"scripts"`
}
func LoadConfig() (error, *Config) {
config := new(Config)
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath("$HOME/.config/statman/")
viper.AddConfigPath(".")
err := viper.ReadInConfig()
if err != nil {
return err, nil
}
err = viper.Unmarshal(config)
if err != nil {
return err, nil
}
return nil, config
}