Skip to content

Commit

Permalink
Merge pull request #70 from hairyhenderson/support-keys-beginning-wit…
Browse files Browse the repository at this point in the history
…h-export-66

Support key names beginning with 'export'
  • Loading branch information
joho committed Feb 4, 2019
2 parents 69ed1d9 + 263a1dd commit 823f94b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
7 changes: 2 additions & 5 deletions godotenv.go
Expand Up @@ -252,11 +252,8 @@ func parseLine(line string, envMap map[string]string) (key string, value string,
}

// Parse the key
key = splitString[0]
if strings.HasPrefix(key, "export") {
key = strings.TrimPrefix(key, "export")
}
key = strings.Trim(key, " ")
re := regexp.MustCompile(`^\s*(?:export\s+)?(.*?)\s*$`)
key = re.ReplaceAllString(splitString[0], "$1")

// Parse the value
value = parseValue(splitString[1], envMap)
Expand Down
9 changes: 8 additions & 1 deletion godotenv_test.go
Expand Up @@ -5,8 +5,8 @@ import (
"fmt"
"os"
"reflect"
"testing"
"strings"
"testing"
)

var noopPresets = make(map[string]string)
Expand Down Expand Up @@ -313,6 +313,13 @@ func TestParsing(t *testing.T) {
// parses export keyword
parseAndCompare(t, "export OPTION_A=2", "OPTION_A", "2")
parseAndCompare(t, `export OPTION_B='\n'`, "OPTION_B", "\\n")
parseAndCompare(t, "export exportFoo=2", "exportFoo", "2")
parseAndCompare(t, "exportFOO=2", "exportFOO", "2")
parseAndCompare(t, "export_FOO =2", "export_FOO", "2")
parseAndCompare(t, "export.FOO= 2", "export.FOO", "2")
parseAndCompare(t, "export\tOPTION_A=2", "OPTION_A", "2")
parseAndCompare(t, " export OPTION_A=2", "OPTION_A", "2")
parseAndCompare(t, "\texport OPTION_A=2", "OPTION_A", "2")

// it 'expands newlines in quoted strings' do
// expect(env('FOO="bar\nbaz"')).to eql('FOO' => "bar\nbaz")
Expand Down

0 comments on commit 823f94b

Please sign in to comment.