feat: support env vars configuration

This commit is contained in:
krau
2025-01-20 12:06:47 +08:00
parent 2a9c615819
commit a778b0fa8c

View File

@@ -3,13 +3,14 @@ package config
import ( import (
"fmt" "fmt"
"os" "os"
"strings"
"github.com/spf13/viper" "github.com/spf13/viper"
) )
type Config struct { type Config struct {
Workers int `toml:"workers" mapstructure:"workers"` Workers int `toml:"workers" mapstructure:"workers"`
Retry int `toml:"retry" mapstructure:"retry"` // Retry times for failed tasks Retry int `toml:"retry" mapstructure:"retry"`
Temp tempConfig `toml:"temp" mapstructure:"temp"` Temp tempConfig `toml:"temp" mapstructure:"temp"`
Log logConfig `toml:"log" mapstructure:"log"` Log logConfig `toml:"log" mapstructure:"log"`
@@ -79,7 +80,12 @@ var Cfg *Config
func Init() { func Init() {
viper.SetConfigName("config") viper.SetConfigName("config")
viper.AddConfigPath(".") viper.AddConfigPath(".")
viper.AddConfigPath("/etc/saveany/")
viper.SetConfigType("toml") viper.SetConfigType("toml")
viper.SetEnvPrefix("SAVEANY")
viper.AutomaticEnv()
replacer := strings.NewReplacer(".", "_")
viper.SetEnvKeyReplacer(replacer)
viper.SetDefault("workers", 3) viper.SetDefault("workers", 3)
viper.SetDefault("retry", 3) viper.SetDefault("retry", 3)