Trim trailing spaces and tabs from config map files

This commit is contained in:
Phani Teja Marupaka
2020-01-02 10:28:03 -08:00
parent 3577a7e174
commit fa8f504ff4
3 changed files with 26 additions and 7 deletions

View File

@@ -292,8 +292,10 @@ metadata:
--- ---
apiVersion: v1 apiVersion: v1
data: data:
nonsense: "Lorem ipsum dolor sit amet, consectetur\nadipiscing elit, sed do eiusmod nonsense: |
tempor\nincididunt ut labore et dolore magna aliqua. \n" Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
kind: ConfigMap kind: ConfigMap
metadata: metadata:
annotations: annotations:
@@ -302,6 +304,6 @@ metadata:
app: mungebot app: mungebot
org: kubernetes org: kubernetes
repo: test-infra repo: test-infra
name: test-infra-app-config-f462h769f9 name: test-infra-app-config-4mt28b5bg2
`) `)
} }

View File

@@ -9,6 +9,7 @@ import (
"fmt" "fmt"
"os" "os"
"path" "path"
"regexp"
"strings" "strings"
"unicode" "unicode"
"unicode/utf8" "unicode/utf8"
@@ -85,11 +86,17 @@ func (kvl *loader) keyValuesFromFileSources(sources []string) ([]types.Pair, err
if err != nil { if err != nil {
return nil, err return nil, err
} }
kvs = append(kvs, types.Pair{Key: k, Value: string(content)}) kvs = append(kvs, types.Pair{Key: k, Value: kvl.trimTrailingSpacesInLines(string(content))})
} }
return kvs, nil return kvs, nil
} }
// Takes string with multiple lines and trims the trailing white spaces from each line.
func (kvl *loader) trimTrailingSpacesInLines(str string) string {
re := regexp.MustCompile(`\s*\n`)
return re.ReplaceAllString(str, "\n")
}
func (kvl *loader) keyValuesFromEnvFiles(paths []string) ([]types.Pair, error) { func (kvl *loader) keyValuesFromEnvFiles(paths []string) ([]types.Pair, error) {
var kvs []types.Pair var kvs []types.Pair
for _, p := range paths { for _, p := range paths {

View File

@@ -95,3 +95,13 @@ func TestKeyValuesFromFileSources(t *testing.T) {
} }
} }
} }
func TestTrimTrailingSpacesInLines(t *testing.T) {
kvl := makeKvLoader(filesys.MakeFsInMemory())
input := "\"fooKey\": \"fooValue\" \t\n\t\"barKey\": \"barValue\""
expected := "\"fooKey\": \"fooValue\"\n\t\"barKey\": \"barValue\""
res := kvl.trimTrailingSpacesInLines(input)
if !reflect.DeepEqual(res, expected) {
t.Errorf("Trim trailing spaces in lines should succeed, got: %s exptected: %s", res, expected)
}
}