Fix linting bug with charts containing more than one hyphen

pull/3519/head
Liam White 7 years ago
parent c2d9dbd9fc
commit abd33764e8

@ -149,7 +149,11 @@ func lintChart(path string, vals []byte, namespace string, strict bool) (support
return linter, err
}
base := strings.Split(filepath.Base(path), "-")[0]
lastHyphenIndex := strings.LastIndex(filepath.Base(path), "-")
if lastHyphenIndex <= 0 {
return linter, fmt.Errorf("unable to parse chart archive %q, missing '-'", filepath.Base(path))
}
base := filepath.Base(path)[:lastHyphenIndex]
chartPath = filepath.Join(tempDir, base)
} else {
chartPath = path

@ -21,11 +21,13 @@ import (
)
var (
values = []byte{}
namespace = "testNamespace"
strict = false
archivedChartPath = "testdata/testcharts/compressedchart-0.1.0.tgz"
chartDirPath = "testdata/testcharts/decompressedchart/"
values = []byte{}
namespace = "testNamespace"
strict = false
archivedChartPath = "testdata/testcharts/compressedchart-0.1.0.tgz"
archivedChartPathWithHyphens = "testdata/testcharts/compressedchart-with-hyphens-0.1.0.tgz"
invalidArchivedChartPath = "testdata/testcharts/invalidcompressedchart0.1.0.tgz"
chartDirPath = "testdata/testcharts/decompressedchart/"
)
func TestLintChart(t *testing.T) {
@ -37,4 +39,11 @@ func TestLintChart(t *testing.T) {
t.Errorf("%s", err)
}
if _, err := lintChart(archivedChartPathWithHyphens, values, namespace, strict); err != nil {
t.Errorf("%s", err)
}
if _, err := lintChart(invalidArchivedChartPath, values, namespace, strict); err == nil {
t.Errorf("Expected a chart parsing error")
}
}

Loading…
Cancel
Save