Load tree when generating repo

This commit is contained in:
Ettore Di Giacinto
2019-11-22 23:24:22 +01:00
parent e664f4f2cf
commit 43ab851cb9
3 changed files with 15 additions and 8 deletions

View File

@@ -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
}

View File

@@ -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())
})

View File

@@ -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) {