37 lines
651 B
Go
37 lines
651 B
Go
|
|
package dotenv
|
||
|
|
|
||
|
|
import (
|
||
|
|
"os"
|
||
|
|
"strings"
|
||
|
|
)
|
||
|
|
|
||
|
|
func LoadEnv() (map[string]string, error) {
|
||
|
|
data, err := os.ReadFile(".env")
|
||
|
|
if err != nil { return nil, err }
|
||
|
|
|
||
|
|
dataString := string(data)
|
||
|
|
lines := strings.Split(dataString, "\n")
|
||
|
|
|
||
|
|
envars := map[string]string{}
|
||
|
|
for _, line := range lines {
|
||
|
|
splits := strings.Split(line, "=")
|
||
|
|
if len(splits) < 2 { continue }
|
||
|
|
|
||
|
|
key := splits[0]
|
||
|
|
value := splits[1]
|
||
|
|
|
||
|
|
if len(value) > 2 && value[0] == '"' && value[len(value) - 1] == '"' {
|
||
|
|
value = value[1:len(value)-1]
|
||
|
|
}
|
||
|
|
|
||
|
|
envars[key] = value
|
||
|
|
}
|
||
|
|
|
||
|
|
return envars, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func SafeGet(m map[string]string, k string) string {
|
||
|
|
value, _ := m[k]
|
||
|
|
return value
|
||
|
|
}
|