forked from coop-cloud-mirrors/godotenv
		
	support for equals in yaml-style lines
This commit is contained in:
		| @ -198,11 +198,11 @@ func parseLine(line string) (key string, value string, err error) { | ||||
| 		line = strings.Join(segmentsToKeep, "#") | ||||
| 	} | ||||
|  | ||||
| 	// now split key from value | ||||
| 	firstEquals := strings.Index(line, "=") | ||||
| 	firstColon := strings.Index(line, ":") | ||||
| 	splitString := strings.SplitN(line, "=", 2) | ||||
|  | ||||
| 	if len(splitString) != 2 { | ||||
| 		// try yaml mode! | ||||
| 	if firstColon != -1 && (firstColon < firstEquals || firstEquals == -1) { | ||||
| 		//this is a yaml-style line | ||||
| 		splitString = strings.SplitN(line, ":", 2) | ||||
| 	} | ||||
|  | ||||
|  | ||||
| @ -205,6 +205,12 @@ func TestParsing(t *testing.T) { | ||||
| 	// parses yaml style options | ||||
| 	parseAndCompare(t, "OPTION_A: 1", "OPTION_A", "1") | ||||
|  | ||||
| 	//parses yaml values with equal signs | ||||
| 	parseAndCompare(t, "OPTION_A: Foo=bar", "OPTION_A", "Foo=bar") | ||||
|  | ||||
| 	// parses non-yaml options with colons | ||||
| 	parseAndCompare(t, "OPTION_A=1:B", "OPTION_A", "1:B") | ||||
|  | ||||
| 	// parses export keyword | ||||
| 	parseAndCompare(t, "export OPTION_A=2", "OPTION_A", "2") | ||||
| 	parseAndCompare(t, `export OPTION_B='\n'`, "OPTION_B", "\n") | ||||
|  | ||||
		Reference in New Issue
	
	Block a user