diff --git a/agent/taskresource/envFiles/envfile.go b/agent/taskresource/envFiles/envfile.go index c789554dc1f..79e0d7423cb 100644 --- a/agent/taskresource/envFiles/envfile.go +++ b/agent/taskresource/envFiles/envfile.go @@ -559,7 +559,7 @@ func (envfile *EnvironmentFileResource) readEnvVarsFromFile(envfilePath string) } // only read the line that has "=" if strings.Contains(line, envVariableDelimiter) { - variables := strings.Split(line, "=") + variables := strings.SplitN(line, envVariableDelimiter, 2) // verify that there is at least a character on each side if len(variables[0]) > 0 && len(variables[1]) > 0 { envVars[variables[0]] = variables[1] diff --git a/agent/taskresource/envFiles/envfile_test.go b/agent/taskresource/envFiles/envfile_test.go index a0d14457e0b..daa4c3b47d0 100644 --- a/agent/taskresource/envFiles/envfile_test.go +++ b/agent/taskresource/envFiles/envfile_test.go @@ -313,7 +313,8 @@ func TestReadEnvVarsFromEnvfiles(t *testing.T) { envfileResource := newMockEnvfileResource(envfiles, nil, nil, mockIOUtil) envfileResource.bufio = mockBufio - envfileContent := "key=value" + envfileContentLine1 := "key1=value" + envFileContentLine2 := "key2=val1=val2" tempOpen := open open = func(name string) (oswrapper.File, error) { @@ -325,7 +326,9 @@ func TestReadEnvVarsFromEnvfiles(t *testing.T) { gomock.InOrder( mockBufio.EXPECT().NewScanner(mockFile).Return(mockScanner), mockScanner.EXPECT().Scan().Return(true), - mockScanner.EXPECT().Text().Return(envfileContent), + mockScanner.EXPECT().Text().Return(envfileContentLine1), + mockScanner.EXPECT().Scan().Return(true), + mockScanner.EXPECT().Text().Return(envFileContentLine2), mockScanner.EXPECT().Scan().Return(false), mockScanner.EXPECT().Err().Return(nil), ) @@ -334,7 +337,8 @@ func TestReadEnvVarsFromEnvfiles(t *testing.T) { assert.Nil(t, err) assert.Equal(t, 1, len(envVarsList)) - assert.Equal(t, "value", envVarsList[0]["key"]) + assert.Equal(t, "value", envVarsList[0]["key1"]) + assert.Equal(t, "val1=val2", envVarsList[0]["key2"]) } func TestReadEnvVarsCommentFromEnvfiles(t *testing.T) {