Skip to content

Commit aab753e

Browse files
committed
refactor and add tests
1 parent 156170e commit aab753e

File tree

3 files changed

+31
-3
lines changed

3 files changed

+31
-3
lines changed

libs/digger_config/digger_config.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,13 +402,15 @@ func hydrateDiggerConfigYamlWithTerragrunt(configYaml *DiggerConfigYaml, parsing
402402
for _, atlantisProject := range atlantisConfig.Projects {
403403

404404
// normalize paths
405-
for i, whenModified := range atlantisProject.Autoplan.WhenModified {
406-
atlantisProject.Autoplan.WhenModified[i] = path.Join(pathPrefix, atlantisProject.Dir, whenModified)
405+
projectDir := path.Join(pathPrefix, atlantisProject.Dir)
406+
atlantisProject.Autoplan.WhenModified, err = GetPatternsRelativeToRepo(projectDir, atlantisProject.Autoplan.WhenModified)
407+
if err != nil {
408+
return fmt.Errorf("could not normalize patterns: %v", err)
407409
}
408410

409411
configYaml.Projects = append(configYaml.Projects, &ProjectYaml{
410412
Name: atlantisProject.Name,
411-
Dir: path.Join(pathPrefix, atlantisProject.Dir),
413+
Dir: projectDir,
412414
Workspace: atlantisProject.Workspace,
413415
Terragrunt: true,
414416
Workflow: atlantisProject.Workflow,

libs/digger_config/utils.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ import (
77
"path/filepath"
88
)
99

10+
func GetPatternsRelativeToRepo(projectPath string, patterns []string) ([]string, error) {
11+
res := make([]string, 0)
12+
for _, pattern := range patterns {
13+
res = append(res, path.Join(projectPath, pattern))
14+
}
15+
return res, nil
16+
}
17+
1018
func NormalizeFileName(fileName string) string {
1119
res, err := filepath.Abs(path.Join("/", fileName))
1220
if err != nil {

libs/digger_config/utils_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,21 @@ func TestMatchIncludeExcludePatternsToFile(t *testing.T) {
2020
result = MatchIncludeExcludePatternsToFile("projects/dev/project", includePatterns, excludePatterns)
2121
assert.Equal(t, false, result)
2222
}
23+
24+
func TestGetPatternsRelativeToRepo(t *testing.T) {
25+
projectDir := "myProject/terraform/environments/devel"
26+
includePatterns := []string{"../../*.tf*"}
27+
res, _ := GetPatternsRelativeToRepo(projectDir, includePatterns)
28+
assert.Equal(t, "myProject/terraform/*.tf*", res[0])
29+
30+
projectDir = "myProject/terraform/environments/devel"
31+
includePatterns = []string{"*.tf"}
32+
res, _ = GetPatternsRelativeToRepo(projectDir, includePatterns)
33+
assert.Equal(t, "myProject/terraform/environments/devel/*.tf", res[0])
34+
35+
projectDir = "myProject/terraform/environments/devel"
36+
includePatterns = []string{"*.hcl"}
37+
res, _ = GetPatternsRelativeToRepo(projectDir, includePatterns)
38+
assert.Equal(t, "myProject/terraform/environments/devel/*.hcl", res[0])
39+
40+
}

0 commit comments

Comments
 (0)