Skip to content

Commit 4602082

Browse files
committed
docs: Update readme
1 parent 064eef3 commit 4602082

File tree

1 file changed

+91
-3
lines changed

1 file changed

+91
-3
lines changed

README.md

Lines changed: 91 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
# getenv
99

1010
Package getenv provides functionality for loading environment variables and parse them into go builtin types.
11-
12-
## Types supported:
13-
11+
Types supported:
1412
- string
1513
- []string
1614
- int
@@ -28,3 +26,93 @@ Package getenv provides functionality for loading environment variables and pars
2826
- time.Time
2927
- time.Duration
3028
- bool
29+
30+
## Examples
31+
32+
### EnvOrDefault
33+
34+
EnvOrDefault retrieves the value of the environment variable named
35+
by the key.
36+
If variable not set or value is empty - defaultVal will be returned.
37+
38+
```golang
39+
package main
40+
41+
import (
42+
"fmt"
43+
"os"
44+
"time"
45+
46+
"github.com/obalunenko/getenv"
47+
"github.com/obalunenko/getenv/option"
48+
)
49+
50+
func main() {
51+
key := "GH_GETENV_TEST"
52+
53+
defer func() {
54+
if err := os.Unsetenv("GH_GETENV_TEST"); err != nil {
55+
panic(err)
56+
}
57+
}()
58+
59+
var val any
60+
61+
// string
62+
if err := os.Setenv(key, "golly"); err != nil {
63+
panic(err)
64+
}
65+
66+
val = getenv.EnvOrDefault(key, "golly")
67+
fmt.Printf("[%T]: %v\n", val, val)
68+
69+
// int
70+
if err := os.Setenv(key, "123"); err != nil {
71+
panic(err)
72+
}
73+
74+
val = getenv.EnvOrDefault(key, -99)
75+
fmt.Printf("[%T]: %v\n", val, val)
76+
77+
// time.Time
78+
if err := os.Setenv(key, "2022-01-20"); err != nil {
79+
panic(err)
80+
}
81+
82+
val = getenv.EnvOrDefault(key,
83+
time.Date(1992, 12, 1, 0, 0, 0, 0, time.UTC),
84+
option.WithTimeLayout("2006-01-02"),
85+
)
86+
fmt.Printf("[%T]: %v\n", val, val)
87+
88+
// []float64
89+
if err := os.Setenv(key, "26.89,0.67"); err != nil {
90+
panic(err)
91+
}
92+
93+
val = getenv.EnvOrDefault(key, []float64{-99},
94+
option.WithSeparator(","),
95+
)
96+
fmt.Printf("[%T]: %v\n", val, val)
97+
98+
// time.Duration
99+
if err := os.Setenv(key, "2h35m"); err != nil {
100+
panic(err)
101+
}
102+
103+
val = getenv.EnvOrDefault(key, time.Second)
104+
fmt.Printf("[%T]: %v\n", val, val)
105+
106+
}
107+
108+
```
109+
110+
Output:
111+
112+
```
113+
[string]: golly
114+
[int]: 123
115+
[time.Time]: 2022-01-20 00:00:00 +0000 UTC
116+
[[]float64]: [26.89 0.67]
117+
[time.Duration]: 2h35m0s
118+
```

0 commit comments

Comments
 (0)