env.go 696 B

123456789101112131415161718192021222324252627282930
  1. package deprecated
  2. import (
  3. "os"
  4. "strconv"
  5. "github.com/sagernet/sing/common/logger"
  6. )
  7. type envManager struct {
  8. logger logger.Logger
  9. }
  10. func NewEnvManager(logger logger.Logger) Manager {
  11. return &envManager{logger: logger}
  12. }
  13. func (f *envManager) ReportDeprecated(feature Note) {
  14. if !feature.Impending() {
  15. f.logger.Warn(feature.MessageWithLink())
  16. return
  17. }
  18. enable, enableErr := strconv.ParseBool(os.Getenv("ENABLE_DEPRECATED_" + feature.EnvName))
  19. if enableErr == nil && enable {
  20. f.logger.Warn(feature.MessageWithLink())
  21. return
  22. }
  23. f.logger.Error(feature.MessageWithLink())
  24. f.logger.Fatal("to continuing using this feature, set ENABLE_DEPRECATED_" + feature.EnvName + "=true")
  25. }