Skip to content

Commit 37d0e87

Browse files
committed
add list of filenames to module meta
1 parent 436dbbb commit 37d0e87

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

earlydecoder/decoder.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package earlydecoder
22

33
import (
44
"fmt"
5+
"sort"
56

67
"github.com/hashicorp/go-version"
78
"github.com/hashicorp/hcl/v2"
@@ -11,13 +12,17 @@ import (
1112

1213
func LoadModule(path string, files map[string]*hcl.File) (*module.Meta, hcl.Diagnostics) {
1314
var diags hcl.Diagnostics
15+
filenames := make([]string, 0)
1416

1517
mod := newDecodedModule()
16-
for _, f := range files {
18+
for filename, f := range files {
19+
filenames = append(filenames, filename)
1720
fDiags := loadModuleFromFile(f, mod)
1821
diags = append(diags, fDiags...)
1922
}
2023

24+
sort.Strings(filenames)
25+
2126
var coreRequirements version.Constraints
2227
for _, rc := range mod.RequiredCore {
2328
c, err := version.NewConstraint(rc)
@@ -166,5 +171,6 @@ func LoadModule(path string, files map[string]*hcl.File) (*module.Meta, hcl.Diag
166171
CoreRequirements: coreRequirements,
167172
Variables: variables,
168173
Outputs: outputs,
174+
Files: filenames,
169175
}, diags
170176
}

module/meta.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@ import (
77
)
88

99
type Meta struct {
10-
Path string
10+
Path string
11+
Files []string
1112

1213
Backend *Backend
1314
ProviderReferences map[ProviderRef]tfaddr.Provider
1415
ProviderRequirements ProviderRequirements
1516
CoreRequirements version.Constraints
1617
Variables map[string]Variable
1718
Outputs map[string]Output
18-
19-
// slice of sorted file names?
2019
}
2120

2221
type ProviderRequirements map[tfaddr.Provider]version.Constraints

schema/module_schema.go

+14-10
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,20 @@ func schemaForDependentModuleBlock(localName string, modMeta *module.Meta) (*sch
9191
NestedTargetables: targetableOutputs,
9292
})
9393

94-
bodySchema.Targets = &schema.Target{
95-
Path: lang.Path{
96-
Path: modMeta.Path,
97-
LanguageID: "terraform",
98-
},
99-
Range: hcl.Range{
100-
Filename: "main.tf", // get from modMeta
101-
Start: hcl.InitialPos,
102-
End: hcl.InitialPos,
103-
},
94+
if len(modMeta.Files) > 0 {
95+
filename := modMeta.Files[0]
96+
97+
bodySchema.Targets = &schema.Target{
98+
Path: lang.Path{
99+
Path: modMeta.Path,
100+
LanguageID: "terraform",
101+
},
102+
Range: hcl.Range{
103+
Filename: filename,
104+
Start: hcl.InitialPos,
105+
End: hcl.InitialPos,
106+
},
107+
}
104108
}
105109

106110
return bodySchema, nil

0 commit comments

Comments
 (0)