return partial config from LoadConfig with errors
LoadConfig should return any parsed configuration in order for the caller to verify `required_version`.
This commit is contained in:
parent
625e768678
commit
a53faf43f6
|
@ -227,7 +227,7 @@ func (c *InitCommand) Run(args []string) int {
|
||||||
var back backend.Backend
|
var back backend.Backend
|
||||||
if flagBackend {
|
if flagBackend {
|
||||||
|
|
||||||
be, backendOutput, backendDiags := c.initBackend(config.Root.Module, flagConfigExtra)
|
be, backendOutput, backendDiags := c.initBackend(config.Module, flagConfigExtra)
|
||||||
diags = diags.Append(backendDiags)
|
diags = diags.Append(backendDiags)
|
||||||
if backendDiags.HasErrors() {
|
if backendDiags.HasErrors() {
|
||||||
c.showDiagnostics(diags)
|
c.showDiagnostics(diags)
|
||||||
|
|
|
@ -21,7 +21,13 @@ import (
|
||||||
func (l *Loader) LoadConfig(rootDir string) (*configs.Config, hcl.Diagnostics) {
|
func (l *Loader) LoadConfig(rootDir string) (*configs.Config, hcl.Diagnostics) {
|
||||||
rootMod, diags := l.parser.LoadConfigDir(rootDir)
|
rootMod, diags := l.parser.LoadConfigDir(rootDir)
|
||||||
if rootMod == nil || diags.HasErrors() {
|
if rootMod == nil || diags.HasErrors() {
|
||||||
return nil, diags
|
// Ensure we return any parsed modules here so that required_version
|
||||||
|
// constraints can be verified even when encountering errors.
|
||||||
|
cfg := &configs.Config{
|
||||||
|
Module: rootMod,
|
||||||
|
}
|
||||||
|
|
||||||
|
return cfg, diags
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, cDiags := configs.BuildConfig(rootMod, configs.ModuleWalkerFunc(l.moduleWalkerLoad))
|
cfg, cDiags := configs.BuildConfig(rootMod, configs.ModuleWalkerFunc(l.moduleWalkerLoad))
|
||||||
|
|
|
@ -91,8 +91,16 @@ func TestLoaderLoadConfig_loadDiags(t *testing.T) {
|
||||||
t.Fatalf("unexpected error from NewLoader: %s", err)
|
t.Fatalf("unexpected error from NewLoader: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, diags := loader.LoadConfig(fixtureDir)
|
cfg, diags := loader.LoadConfig(fixtureDir)
|
||||||
if !diags.HasErrors() {
|
if !diags.HasErrors() {
|
||||||
t.Fatalf("success; want error")
|
t.Fatal("success; want error")
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg == nil {
|
||||||
|
t.Fatal("partial config not returned with diagnostics")
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.Module == nil {
|
||||||
|
t.Fatal("expected config module")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue