diff --git a/pkg/installer/installer.go b/pkg/installer/installer.go index ce8bbbde..87403a11 100644 --- a/pkg/installer/installer.go +++ b/pkg/installer/installer.go @@ -28,6 +28,7 @@ import ( . "github.com/mudler/luet/pkg/logger" pkg "github.com/mudler/luet/pkg/package" "github.com/mudler/luet/pkg/solver" + "github.com/mudler/luet/pkg/tree" "github.com/pkg/errors" ) @@ -219,18 +220,18 @@ func (l *LuetInstaller) Install(p []pkg.Package, s *System) error { return errors.Wrap(err, "Error getting package "+ass.Package.GetFingerPrint()) } - finalizerRaw, err := ioutil.ReadFile(treePackage.Rel("finalizer.yaml")) + finalizerRaw, err := ioutil.ReadFile(treePackage.Rel(tree.FinalizerFile)) if err != nil { - return errors.Wrap(err, "Error reading file "+treePackage.Rel("finalizer.yaml")) + return errors.Wrap(err, "Error reading file "+treePackage.Rel(tree.FinalizerFile)) } if _, exists := executedFinalizer[ass.Package.GetFingerPrint()]; !exists { finalizer, err := NewLuetFinalizerFromYaml(finalizerRaw) if err != nil { - return errors.Wrap(err, "Error reading finalizer "+treePackage.Rel("finalizer.yaml")) + return errors.Wrap(err, "Error reading finalizer "+treePackage.Rel(tree.FinalizerFile)) } err = finalizer.RunInstall() if err != nil { - return errors.Wrap(err, "Error executing install finalizer "+treePackage.Rel("finalizer.yaml")) + return errors.Wrap(err, "Error executing install finalizer "+treePackage.Rel(tree.FinalizerFile)) } executedFinalizer[ass.Package.GetFingerPrint()] = true } diff --git a/pkg/installer/installer_test.go b/pkg/installer/installer_test.go index fa2e3fcd..505f816e 100644 --- a/pkg/installer/installer_test.go +++ b/pkg/installer/installer_test.go @@ -80,6 +80,7 @@ var _ = Describe("Installer", func() { Expect(content2).To(Equal("artifact6\n")) Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue()) + Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue()) }) diff --git a/pkg/installer/repository.go b/pkg/installer/repository.go index e82e06b9..0fc71aaa 100644 --- a/pkg/installer/repository.go +++ b/pkg/installer/repository.go @@ -43,18 +43,23 @@ type LuetRepository struct { Type string `json:"type"` } -func GenerateRepository(name, uri string, priority int, src, tree string, db pkg.PackageDatabase) (Repository, error) { +func GenerateRepository(name, uri, t string, priority int, src, treeDir string, db pkg.PackageDatabase) (Repository, error) { art, err := buildPackageIndex(src) if err != nil { return nil, err } + tr := tree.NewInstallerRecipe(db) + err = tr.Load(treeDir) + if err != nil { + return nil, err + } - return NewLuetRepository(name, uri, priority, art, db), nil + return NewLuetRepository(name, uri, t, priority, art, tr), nil } -func NewLuetRepository(name, uri string, priority int, art []compiler.Artifact, db pkg.PackageDatabase) Repository { - return &LuetRepository{Index: art, Tree: tree.NewInstallerRecipe(db)} +func NewLuetRepository(name, uri, t string, priority int, art []compiler.Artifact, builder tree.Builder) Repository { + return &LuetRepository{Index: art, Type: t, Tree: builder} } func NewLuetRepositoryFromYaml(data []byte) (Repository, error) {