35 lines
501 B
Go
35 lines
501 B
Go
package appmode
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
const (
|
|
envKey = "APP_MODE"
|
|
|
|
Development = "development"
|
|
Production = "production"
|
|
)
|
|
|
|
var (
|
|
ErrUnsupported = errors.New("unsupported app mode")
|
|
)
|
|
|
|
func Parse() (string, error) {
|
|
appModeStr, ok := os.LookupEnv(envKey)
|
|
if !ok {
|
|
return Development, nil
|
|
}
|
|
|
|
switch appModeStr {
|
|
case Development:
|
|
return Development, nil
|
|
case Production:
|
|
return Production, nil
|
|
default:
|
|
return "", fmt.Errorf("%w: %s", ErrUnsupported, appModeStr)
|
|
}
|
|
}
|