Files
butterfliu/config/config.go
lzw-723 0b7cd05486
All checks were successful
Go CI / test-and-build (push) Successful in 12s
添加歌曲封面接口
2026-04-06 23:16:34 +08:00

61 lines
1.5 KiB
Go

package config
import (
"log"
"os"
"path"
"strconv"
)
type Config struct {
DatabasePath string
CachePath string
}
// LoadConfig loads configuration from environment variables
func LoadConfig() *Config {
cfg := &Config{
DatabasePath: getEnv("DATABASE_PATH", "./butterfliu.db"),
CachePath: getEnv("CACHE_PATH", "./cache"),
}
os.MkdirAll(cfg.CachePath, os.ModeAppend)
return cfg
}
func (self *Config) GetCachePath(cacheType string) string {
path := path.Join(self.CachePath, cacheType)
os.MkdirAll(path, os.ModeAppend)
return path
}
// getEnv gets an environment variable with a default value
func getEnv(key, defaultValue string) string {
if value := os.Getenv(key); value != "" {
return value
}
return defaultValue
}
// getEnvAsInt gets an environment variable as integer
func getEnvAsInt(key string, defaultValue int) int {
if value := os.Getenv(key); value != "" {
if intValue, err := strconv.Atoi(value); err == nil {
return intValue
}
log.Printf("Warning: Invalid integer value for %s: %s, using default: %d", key, value, defaultValue)
}
return defaultValue
}
// getEnvAsInt64 gets an environment variable as int64
func getEnvAsInt64(key string, defaultValue int64) int64 {
if value := os.Getenv(key); value != "" {
if intValue, err := strconv.ParseInt(value, 10, 64); err == nil {
return intValue
}
log.Printf("Warning: Invalid int64 value for %s: %s, using default: %d", key, value, defaultValue)
}
return defaultValue
}