helpers.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // package helpers -- содержит всякие полезняшки
  2. //
  3. // Пакет импортировать где нужно в нотации `. "gitlab.c2g.pw/back/uaj-abstract-client/pkg/helpers"`
  4. package helpers
  5. import (
  6. "fmt"
  7. "os"
  8. )
  9. var (
  10. IsStageLocal bool
  11. IsStageProd bool
  12. )
  13. // Провер -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
  14. func Провер(isCond bool, msgFormat string, args ...interface{}) {
  15. if isCond {
  16. return
  17. }
  18. msg := fmt.Sprintf("МЯГКАЯ ПРОВЕРКА "+msgFormat+"\n", args...)
  19. if IsStageLocal {
  20. panic(msg)
  21. }
  22. fmt.Print(msg)
  23. }
  24. // Паника -- проверка на правильность утверждения с безусловным падением в панику (hard assert)
  25. func Паника(isCond bool, msgFormat string, args ...interface{}) {
  26. if isCond {
  27. return
  28. }
  29. msg := fmt.Sprintf("ТВЁРДАЯ ПРОВЕРКА "+msgFormat+"\n", args...)
  30. panic(msg)
  31. }
  32. func init_() {
  33. strStage := os.Getenv("STAGE")
  34. switch strStage {
  35. case "local":
  36. IsStageLocal = true
  37. IsStageProd = false
  38. case "prod":
  39. IsStageProd = true
  40. IsStageLocal = false
  41. case "":
  42. IsStageLocal = true
  43. IsStageProd = false
  44. default:
  45. panic(fmt.Sprintf("helpers.init_(): unknown env STAGE (%v)\n", strStage))
  46. }
  47. }
  48. func init() {
  49. init_()
  50. }