chore: refactor
This commit is contained in:
54
internal/env/env.go
vendored
Normal file
54
internal/env/env.go
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
package env
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
||||
func Default(key, def string) string {
|
||||
if v, ok := os.LookupEnv(key); ok {
|
||||
return v
|
||||
}
|
||||
return def
|
||||
}
|
||||
|
||||
type secret struct {
|
||||
value string
|
||||
}
|
||||
func (s secret) Secret() string {
|
||||
return s.value
|
||||
}
|
||||
func (s secret) String() string {
|
||||
return "***"
|
||||
}
|
||||
func Secret(key, def string) secret {
|
||||
if v, ok := os.LookupEnv(key); ok {
|
||||
return secret{v}
|
||||
}
|
||||
return secret{def}
|
||||
}
|
||||
|
||||
func DotEnv() {
|
||||
fd, err := os.Open(".env")
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
scan := bufio.NewScanner(fd)
|
||||
|
||||
for scan.Scan() {
|
||||
line := scan.Text()
|
||||
|
||||
if strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
key, val, ok := strings.Cut(line, "=")
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
os.Setenv(strings.TrimSpace(key), strings.TrimSpace(val))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user