package config import ( "os" "sync" ) type Config struct { BaseURL string Username string Password string Semester string TWFID string } var ( cfg *Config cfgOnce sync.Once ) func Load() *Config { cfgOnce.Do(func() { cfg = &Config{ BaseURL: getEnv("JWTS_BASE_URL", "http://jwts.hitwh.edu.cn"), Username: getEnv("JWTS_USERNAME", ""), Password: getEnv("JWTS_PASSWORD", ""), Semester: getEnv("JWTS_SEMESTER", "2025-20262"), TWFID: getEnv("JWTS_TWFID", ""), } }) return cfg } func Get() *Config { if cfg == nil { return Load() } return cfg } func getEnv(key, defaultValue string) string { val := os.Getenv(key) if val == "" { return defaultValue } return val }