diff --git a/pkg/chartutil/load.go b/pkg/chartutil/load.go index 911d883d2..20212f241 100644 --- a/pkg/chartutil/load.go +++ b/pkg/chartutil/load.go @@ -208,6 +208,7 @@ func LoadDir(dir string) (*chart.Chart, error) { } rules = r } + rules.AddDefaults() files := []*afile{} topdir += string(filepath.Separator) diff --git a/pkg/ignore/rules.go b/pkg/ignore/rules.go index f5b08a4ee..0e102a2e7 100644 --- a/pkg/ignore/rules.go +++ b/pkg/ignore/rules.go @@ -42,6 +42,13 @@ func Empty() *Rules { return &Rules{patterns: []*pattern{}} } +// AddDefaults adds default ignore patterns. +// +// Ignore all dotfiles in "templates/" +func (r *Rules) AddDefaults() { + r.parseRule(`templates/.?*`) +} + // ParseFile parses a helmignore file and returns the *Rules. func ParseFile(file string) (*Rules, error) { f, err := os.Open(file) diff --git a/pkg/ignore/rules_test.go b/pkg/ignore/rules_test.go index a30db06c5..3040221ae 100644 --- a/pkg/ignore/rules_test.go +++ b/pkg/ignore/rules_test.go @@ -63,7 +63,6 @@ func TestParseFail(t *testing.T) { t.Errorf("Rule %q should have failed", fail) } } - } func TestParseFile(t *testing.T) { @@ -99,6 +98,7 @@ func TestIgnore(t *testing.T) { {`cargo/*.*`, "cargo/a.txt", true}, {`cargo/*.txt`, "mast/a.txt", false}, {`ru[c-e]?er.txt`, "rudder.txt", true}, + {`templates/.?*`, "templates/.dotfile", true}, // Directory tests {`cargo/`, "cargo", true}, @@ -134,6 +134,15 @@ func TestIgnore(t *testing.T) { } } +func TestAddDefaults(t *testing.T) { + r := Rules{} + r.AddDefaults() + + if len(r.patterns) != 1 { + t.Errorf("Expected 1 default patterns, got %d", len(r.patterns)) + } +} + func parseString(str string) (*Rules, error) { b := bytes.NewBuffer([]byte(str)) return Parse(b) diff --git a/pkg/ignore/testdata/templates/.dotfile b/pkg/ignore/testdata/templates/.dotfile new file mode 100644 index 000000000..e69de29bb