@@ -21,7 +21,17 @@ import (
21
21
"io"
22
22
)
23
23
24
- var formats = map [string ]Parser {}
24
+ const DotEnv = ".env"
25
+
26
+ var formats = map [string ]Parser {
27
+ DotEnv : func (r io.Reader , filename string , lookup func (key string ) (string , bool )) (map [string ]string , error ) {
28
+ m , err := ParseWithLookup (r , lookup )
29
+ if err != nil {
30
+ return nil , fmt .Errorf ("failed to read %s: %w" , filename , err )
31
+ }
32
+ return m , nil
33
+ },
34
+ }
25
35
26
36
type Parser func (r io.Reader , filename string , lookup func (key string ) (string , bool )) (map [string ]string , error )
27
37
@@ -30,9 +40,12 @@ func RegisterFormat(format string, p Parser) {
30
40
}
31
41
32
42
func ParseWithFormat (r io.Reader , filename string , resolve LookupFn , format string ) (map [string ]string , error ) {
33
- parser , ok := formats [format ]
43
+ if format == "" {
44
+ format = DotEnv
45
+ }
46
+ fn , ok := formats [format ]
34
47
if ! ok {
35
48
return nil , fmt .Errorf ("unsupported env_file format %q" , format )
36
49
}
37
- return parser (r , filename , resolve )
50
+ return fn (r , filename , resolve )
38
51
}
0 commit comments