37 lines
697 B
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
|
|
}
|