diff --git a/godotenv.go b/godotenv.go index a421053..84e2ff9 100644 --- a/godotenv.go +++ b/godotenv.go @@ -138,11 +138,11 @@ func parseLine(line string) (key string, value string, err error) { } // now split key from value - splitString := strings.Split(line, "=") + splitString := strings.SplitN(line, "=", 2) if len(splitString) != 2 { // try yaml mode! - splitString = strings.Split(line, ":") + splitString = strings.SplitN(line, ":", 2) } if len(splitString) != 2 { diff --git a/godotenv_test.go b/godotenv_test.go index 381be3e..e1ac87f 100644 --- a/godotenv_test.go +++ b/godotenv_test.go @@ -151,6 +151,10 @@ func TestParsing(t *testing.T) { // expect(env('FOO.BAR=foobar')).to eql('FOO.BAR' => 'foobar') parseAndCompare(t, "FOO.BAR=foobar", "FOO.BAR", "foobar") + // it 'parses varibales with several "=" in the value' do + // expect(env('FOO=foobar=')).to eql('FOO' => 'foobar=') + parseAndCompare(t, "FOO=foobar=", "FOO", "foobar=") + // it 'strips unquoted values' do // expect(env('foo=bar ')).to eql('foo' => 'bar') # not 'bar ' parseAndCompare(t, "FOO=bar ", "FOO", "bar")