portal/config/config.go

51 lines
862 B
Go
Raw Normal View History

package config
import (
"errors"
"github.com/spf13/viper"
"go.uber.org/zap"
)
var (
ConfigFilePaths = []string{
"/etc/lumeweb/portal/",
"$HOME/.lumeweb/portal/",
".",
}
)
func Init() error {
logger, _ := zap.NewDevelopment()
viper.SetConfigName("config")
viper.SetConfigType("yaml")
for _, path := range ConfigFilePaths {
viper.AddConfigPath(path)
}
viper.SetEnvPrefix("LUME_WEB_PORTAL")
viper.AutomaticEnv()
defaults()
err := viper.ReadInConfig()
if err != nil {
if errors.As(err, &viper.ConfigFileNotFoundError{}) {
2024-01-12 04:23:22 +00:00
logger.Info("Config file not found, using default settings.")
err := viper.SafeWriteConfig()
if err != nil {
return err
}
2024-01-12 04:23:22 +00:00
return nil
}
2024-01-12 04:23:22 +00:00
return err
}
2024-01-12 04:23:22 +00:00
return nil
}
func defaults() {
viper.SetDefault("core.post-upload-limit", 1024*1024*1000)
viper.SetDefault("core.log.level", "info")
}