package config import ( "os" "sync" ) type Config struct { BaseURL 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"), Semester: getEnv("JWTS_SEMESTER", ""), 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 } var ( BaseURL = Get().BaseURL Semester = Get().Semester TWFID = Get().TWFID )