1
1
package env
2
2
3
3
import (
4
+ "fmt"
4
5
"os"
5
6
"strconv"
6
7
7
8
_ "github.com/joho/godotenv/autoload"
8
- "github.com/ochom/gutils/logs"
9
9
)
10
10
11
11
// Get returns env variable or the provided default value when variable not found
12
- func Get (props ... string ) string {
13
- if len (props ) == 0 {
14
- logs .Error ("Get Env: props cannot be empty" )
15
- return ""
16
- }
17
-
18
- key := props [0 ]
12
+ func Get (name string , defaults ... string ) string {
19
13
defaultValue := ""
20
- if len (props ) > 1 {
21
- defaultValue = props [ 1 ]
14
+ if len (defaults ) > 1 {
15
+ defaultValue = defaults [ 0 ]
22
16
}
23
17
24
- value , ok := os .LookupEnv (key )
18
+ value , ok := os .LookupEnv (name )
25
19
if ! ok {
26
- logs .Warn ("Get Env: %s not found" , key )
27
20
return defaultValue
28
21
}
29
22
30
23
return value
31
24
}
32
25
33
26
// Int returns an integer from env variable or the provided default value when variable not found
34
- func Int (key string , defaultValue int ) int {
35
- value , ok := os .LookupEnv (key )
27
+ func Int (name string , defaultValue int ) int {
28
+ value , ok := os .LookupEnv (name )
36
29
if ! ok {
37
30
return defaultValue
38
31
}
@@ -46,8 +39,8 @@ func Int(key string, defaultValue int) int {
46
39
}
47
40
48
41
// Bool returns a boolean from env variable or the provided default value when variable not found
49
- func Bool (key string , defaultValue bool ) bool {
50
- value , ok := os .LookupEnv (key )
42
+ func Bool (name string , defaultValue bool ) bool {
43
+ value , ok := os .LookupEnv (name )
51
44
if ! ok {
52
45
return defaultValue
53
46
}
@@ -61,8 +54,8 @@ func Bool(key string, defaultValue bool) bool {
61
54
}
62
55
63
56
// Float returns a float from env variable or the provided default value when variable not found
64
- func Float (key string , defaultValue float64 ) float64 {
65
- value , ok := os .LookupEnv (key )
57
+ func Float (name string , defaultValue float64 ) float64 {
58
+ value , ok := os .LookupEnv (name )
66
59
if ! ok {
67
60
return defaultValue
68
61
}
@@ -74,3 +67,58 @@ func Float(key string, defaultValue float64) float64 {
74
67
75
68
return val
76
69
}
70
+
71
+ // MustGet returns env variable or panics when variable not found
72
+ func MustGet (name string ) string {
73
+ value , ok := os .LookupEnv (name )
74
+ if ! ok {
75
+ panic (fmt .Errorf ("MustGet Env: %s not found" , name ))
76
+ }
77
+
78
+ return value
79
+ }
80
+
81
+ // MustInt returns an integer from env variable or panics when variable not found
82
+ func MustInt (name string ) int {
83
+ value , ok := os .LookupEnv (name )
84
+ if ! ok {
85
+ panic (fmt .Errorf ("MustInt Env: %s not found" , name ))
86
+ }
87
+
88
+ val , err := strconv .Atoi (value )
89
+ if err != nil {
90
+ panic (fmt .Errorf ("MustInt Env: %s not an integer" , name ))
91
+ }
92
+
93
+ return val
94
+ }
95
+
96
+ // MustBool returns a boolean from env variable or panics when variable not found
97
+ func MustBool (name string ) bool {
98
+ value , ok := os .LookupEnv (name )
99
+ if ! ok {
100
+ panic (fmt .Errorf ("MustBool Env: %s not found" , name ))
101
+ }
102
+
103
+ val , err := strconv .ParseBool (value )
104
+ if err != nil {
105
+ panic (fmt .Errorf ("MustBool Env: %s not a boolean" , name ))
106
+ }
107
+
108
+ return val
109
+ }
110
+
111
+ // MustFloat returns a float from env variable or panics when variable not found
112
+ func MustFloat (name string ) float64 {
113
+ value , ok := os .LookupEnv (name )
114
+ if ! ok {
115
+ panic (fmt .Errorf ("MustFloat Env: %s not found" , name ))
116
+ }
117
+
118
+ val , err := strconv .ParseFloat (value , 64 )
119
+ if err != nil {
120
+ panic (fmt .Errorf ("MustFloat Env: %s not a float" , name ))
121
+ }
122
+
123
+ return val
124
+ }
0 commit comments