MCPcopy Index your code
hub / github.com/dagger/dagger / ParseModuleConfig

Function ParseModuleConfig

core/modules/config.go:18–38  ·  view source on GitHub ↗
(src []byte)

Source from the content-addressed store, hash-verified

16const EngineVersionLatest string = "latest"
17
18func ParseModuleConfig(src []byte) (*ModuleConfigWithUserFields, error) {
19 // before attempting to parse the entire config, just read the
20 // engineVersion field, to perform version checks to see if it's even
21 // possible
22 var meta struct {
23 EngineVersion string `json:"engineVersion"`
24 }
25 if err := json.Unmarshal(src, &meta); err != nil {
26 return nil, fmt.Errorf("failed to decode module config: %w", err)
27 }
28 meta.EngineVersion = engine.NormalizeVersion(meta.EngineVersion)
29 if !engine.CheckMaxVersionCompatibility(meta.EngineVersion, engine.BaseVersion(engine.Version)) {
30 return nil, fmt.Errorf("module requires dagger %s, but you have %s", meta.EngineVersion, engine.Version)
31 }
32
33 var modCfg ModuleConfigWithUserFields
34 if err := json.Unmarshal(src, &modCfg); err != nil {
35 return nil, fmt.Errorf("failed to decode module config: %w", err)
36 }
37 return &modCfg, nil
38}
39
40// ModuleConfigWithUserFields is the config for a single module as loaded from a dagger.json file.
41// Includes additional fields that should only be set by the user.

Callers 2

localModuleSourceMethod · 0.92
initFromModConfigMethod · 0.92

Calls 4

NormalizeVersionFunction · 0.92
BaseVersionFunction · 0.92
UnmarshalMethod · 0.65

Tested by

no test coverage detected