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)
|
||
|
}
|
||
|
}
|