diff --git a/cmd/build.go b/cmd/build.go index e8489af3..72194cc9 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -150,6 +150,11 @@ Build packages specifying multiple definition trees: if err != nil { util.DefaultContext.Warning("errors while loading trees from repositories", err.Error()) } + + for _, r := range bt.RepoDir { + helpers.CheckErr(installerRecipe.Load(r)) + } + templateFolders = util.TemplateFolders(util.DefaultContext, bt, treePaths) } else { templateFolders = util.TemplateFolders(util.DefaultContext, installer.BuildTreeResult{}, treePaths) diff --git a/pkg/api/core/types/config.go b/pkg/api/core/types/config.go index 5aa27768..57a1ec45 100644 --- a/pkg/api/core/types/config.go +++ b/pkg/api/core/types/config.go @@ -214,6 +214,7 @@ type LuetConfig struct { FinalizerEnvs Finalizers `json:"finalizer_envs,omitempty" yaml:"finalizer_envs,omitempty" mapstructure:"finalizer_envs,omitempty"` ConfigProtectConfFiles []config.ConfigProtectConfFile `yaml:"-" mapstructure:"-"` + } // AddSystemRepository is just syntax sugar to add a repository in the system set @@ -296,6 +297,7 @@ func (c *LuetConfig) loadRepositories() error { continue } + c.AddSystemRepository(*r) } } diff --git a/pkg/installer/repository.go b/pkg/installer/repository.go index f9b01386..54711d25 100644 --- a/pkg/installer/repository.go +++ b/pkg/installer/repository.go @@ -118,6 +118,7 @@ func SystemRepositories(t types.LuetRepositories) Repositories { type BuildTreeResult struct { Repositories Repositories TemplatesDir map[*LuetSystemRepository][]string + RepoDir map[*LuetSystemRepository]string } // LoadBuildTree loads to the tree the compilation specs from the system repositories @@ -125,6 +126,7 @@ func LoadBuildTree(t tree.Builder, db types.PackageDatabase, ctx types.Context) var reserr error res := &BuildTreeResult{ TemplatesDir: make(map[*LuetSystemRepository][]string), + RepoDir: make(map[*LuetSystemRepository]string), } repos := SystemRepositories(ctx.GetConfig().SystemRepositories) @@ -147,6 +149,8 @@ func LoadBuildTree(t tree.Builder, db types.PackageDatabase, ctx types.Context) r.SetTree(generalRecipe) res.TemplatesDir[r] = template.FindPossibleTemplatesDir(repodir) + res.RepoDir[r] = ctx.GetConfig().System.GetRepoDatabaseDirPath(r.GetName()) + ctx.Debugf("Loaded repository '%s' with template dir '%s' and repository dir '%s'", r.Name, res.TemplatesDir[r], res.RepoDir[r]) } res.Repositories = repos