1- package main
1+ package env
22
33import (
44 "flag"
@@ -13,7 +13,7 @@ import (
1313
1414// build variables
1515var (
16- Version string
16+ VERSION string
1717 ARG_DB_URL * string
1818 ARG_DB_TYPE * string
1919 ARG_AUTHORIZER_URL * string
@@ -22,23 +22,25 @@ var (
2222
2323// InitEnv -> to initialize env and through error if required env are not present
2424func InitEnv () {
25- envPath := `.env`
25+ if constants .ENV_PATH == "" {
26+ constants .ENV_PATH = `.env`
27+ }
2628 ARG_DB_URL = flag .String ("database_url" , "" , "Database connection string" )
2729 ARG_DB_TYPE = flag .String ("database_type" , "" , "Database type, possible values are postgres,mysql,sqlite" )
2830 ARG_AUTHORIZER_URL = flag .String ("authorizer_url" , "" , "URL for authorizer instance, eg: https://xyz.herokuapp.com" )
2931 ARG_ENV_FILE = flag .String ("env_file" , "" , "Env file path" )
3032
3133 flag .Parse ()
3234 if * ARG_ENV_FILE != "" {
33- envPath = * ARG_ENV_FILE
35+ constants . ENV_PATH = * ARG_ENV_FILE
3436 }
3537
36- err := godotenv .Load (envPath )
38+ err := godotenv .Load (constants . ENV_PATH )
3739 if err != nil {
38- log .Println ("error loading .env file" )
40+ log .Printf ("error loading %s file" , constants . ENV_PATH )
3941 }
4042
41- constants .VERSION = Version
43+ constants .VERSION = VERSION
4244 constants .ADMIN_SECRET = os .Getenv ("ADMIN_SECRET" )
4345 constants .ENV = os .Getenv ("ENV" )
4446 constants .DATABASE_TYPE = os .Getenv ("DATABASE_TYPE" )
@@ -63,9 +65,9 @@ func InitEnv() {
6365 constants .TWITTER_CLIENT_ID = os .Getenv ("TWITTER_CLIENT_ID" )
6466 constants .TWITTER_CLIENT_SECRET = os .Getenv ("TWITTER_CLIENT_SECRET" )
6567 constants .RESET_PASSWORD_URL = strings .TrimPrefix (os .Getenv ("RESET_PASSWORD_URL" ), "/" )
66- constants .DISABLE_BASIC_AUTHENTICATION = os .Getenv ("DISABLE_BASIC_AUTHENTICATION" )
67- constants .DISABLE_EMAIL_VERIFICATION = os .Getenv ("DISABLE_EMAIL_VERIFICATION" )
68- constants .DISABLE_MAGIC_LOGIN = os .Getenv ("DISABLE_MAGIC_LOGIN" )
68+ constants .DISABLE_BASIC_AUTHENTICATION = os .Getenv ("DISABLE_BASIC_AUTHENTICATION" ) == "true"
69+ constants .DISABLE_EMAIL_VERIFICATION = os .Getenv ("DISABLE_EMAIL_VERIFICATION" ) == "true"
70+ constants .DISABLE_MAGIC_LOGIN = os .Getenv ("DISABLE_MAGIC_LOGIN" ) == "true"
6971 constants .JWT_ROLE_CLAIM = os .Getenv ("JWT_ROLE_CLAIM" )
7072
7173 if constants .ADMIN_SECRET == "" {
@@ -128,21 +130,14 @@ func InitEnv() {
128130 constants .COOKIE_NAME = "authorizer"
129131 }
130132
131- if constants .DISABLE_BASIC_AUTHENTICATION == "" {
132- constants .DISABLE_BASIC_AUTHENTICATION = "false"
133- }
134-
135- if constants .DISABLE_MAGIC_LOGIN == "" {
136- constants .DISABLE_MAGIC_LOGIN = "false"
137- }
138-
139133 if constants .SMTP_HOST == "" || constants .SENDER_EMAIL == "" || constants .SENDER_PASSWORD == "" {
140- constants .DISABLE_EMAIL_VERIFICATION = "true"
141- } else if constants .DISABLE_EMAIL_VERIFICATION == "" {
142- constants .DISABLE_EMAIL_VERIFICATION = "false"
134+ constants .DISABLE_EMAIL_VERIFICATION = true
135+ constants .DISABLE_MAGIC_LOGIN = true
143136 }
144137
145- log .Println ("email verification disabled:" , constants .DISABLE_EMAIL_VERIFICATION )
138+ if constants .DISABLE_EMAIL_VERIFICATION {
139+ constants .DISABLE_MAGIC_LOGIN = true
140+ }
146141
147142 rolesSplit := strings .Split (os .Getenv ("ROLES" ), "," )
148143 roles := []string {}
0 commit comments