nim/internal/settings.go

56 lines
1 KiB
Go

package internal
import (
"errors"
"os"
"strconv"
)
var (
SALT string
POSTGRES_URL string
JWT_SECRET string
FETCH_LENGTH int32
PREFORK bool
err error
conv int64
)
func ReadFromENV() error {
SALT = os.Getenv("SALT")
if len(SALT) < 8 {
return errors.New("Invalid Salt")
}
POSTGRES_URL = os.Getenv("POSTGRES_URL")
if len(POSTGRES_URL) < 1 {
return errors.New("POSTGRES_URL NOT FOUND")
}
JWT_SECRET = os.Getenv("JWT_SECRET")
if len(JWT_SECRET) < 10 {
return errors.New("INVALID JWT SECRET")
}
fetch_len_str := os.Getenv("FETCH_LENGTH")
if len(fetch_len_str) == 0 {
FETCH_LENGTH = 10
} else {
conv, err = strconv.ParseInt(fetch_len_str, 10, 32)
if err != nil {
return err
}
if conv < 1 {
return errors.New("FETCH_LENGTH should be a positive number as well over 0")
}
FETCH_LENGTH = int32(conv)
}
prefork_str := os.Getenv("PREFORK")
if len(prefork_str) == 0 {
PREFORK = false
} else {
PREFORK, err = strconv.ParseBool(prefork_str)
if err != nil {
return err
}
}
return nil
}