sharded-gotify/mode/mode.go

44 lines
694 B
Go

package mode
import "github.com/gin-gonic/gin"
const (
// Dev for development mode.
Dev = "dev"
// Prod for production mode.
Prod = "prod"
// TestDev used for tests.
TestDev = "testdev"
)
var mode = Dev
// Set sets the new mode.
func Set(newMode string) {
mode = newMode
updateGinMode()
}
// Get returns the current mode.
func Get() string {
return mode
}
// IsDev returns true if the current mode is dev mode.
func IsDev() bool {
return Get() == Dev || Get() == TestDev
}
func updateGinMode() {
switch Get() {
case Dev:
gin.SetMode(gin.DebugMode)
case TestDev:
gin.SetMode(gin.TestMode)
case Prod:
gin.SetMode(gin.ReleaseMode)
default:
panic("unknown mode")
}
}