@@ -21,7 +21,17 @@ import (
2121 "io"
2222)
2323
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+ }
2535
2636type Parser func (r io.Reader , filename string , lookup func (key string ) (string , bool )) (map [string ]string , error )
2737
@@ -30,9 +40,12 @@ func RegisterFormat(format string, p Parser) {
3040}
3141
3242func 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 ]
3447 if ! ok {
3548 return nil , fmt .Errorf ("unsupported env_file format %q" , format )
3649 }
37- return parser (r , filename , resolve )
50+ return fn (r , filename , resolve )
3851}
0 commit comments