Compare commits

..

4 Commits

Author SHA1 Message Date
Ettore Di Giacinto
70f99b6bb7 ⬆️ Tag 0.32.3 2022-06-07 13:10:22 +02:00
Ettore Di Giacinto
cfbd8bf708 🐛 Fixup finalizer detection
This caused finalizers to run also for already-installed packages
2022-06-07 13:09:52 +02:00
mudler
4cb21a3e02 🎨 Match exit status with panic 2022-06-06 23:33:55 +02:00
mudler
3a31639897 🎨 Don't panic on Fatal 2022-06-06 23:09:39 +02:00
3 changed files with 28 additions and 21 deletions

View File

@@ -30,7 +30,7 @@ var cfgFile string
var Verbose bool
const (
LuetCLIVersion = "0.32.2"
LuetCLIVersion = "0.32.3"
LuetEnvPrefix = "LUET"
)

View File

@@ -17,6 +17,7 @@ package logger
import (
"fmt"
"os"
"path"
"regexp"
"runtime"
@@ -254,7 +255,7 @@ func (l *Logger) Tracef(t string, args ...interface{}) {
func (l *Logger) Fatal(args ...interface{}) {
l.send(log.LevelFatal, "", args...)
panic("fatal error")
os.Exit(2)
}
func (l *Logger) Info(args ...interface{}) {

View File

@@ -95,6 +95,27 @@ func NewLuetFinalizerFromYaml(data []byte) (*LuetFinalizer, error) {
func OrderFinalizers(allRepos types.PackageDatabase, toInstall map[string]ArtifactMatch, solution types.PackagesAssertions) ([]*types.Package, error) {
var toFinalize []*types.Package
populate := func(ordered types.PackagesAssertions) error {
for _, ass := range ordered {
if ass.Value {
installed, ok := toInstall[ass.Package.GetFingerPrint()]
if !ok {
// It was a dep already installed in the system, so we can skip it safely
continue
}
treePackage, err := installed.Repository.GetTree().GetDatabase().FindPackage(ass.Package)
if err != nil {
return errors.Wrap(err, "Error getting package "+ass.Package.HumanReadableString())
}
toFinalize = append(toFinalize, treePackage)
return nil
}
}
return nil
}
if len(toInstall) == 1 {
for _, w := range toInstall {
if fileHelper.Exists(w.Package.Rel(tree.FinalizerFile)) {
@@ -103,21 +124,8 @@ func OrderFinalizers(allRepos types.PackageDatabase, toInstall map[string]Artifa
if err != nil {
return toFinalize, errors.Wrap(err, "While order a solution for "+w.Package.HumanReadableString())
}
ORDER:
for _, ass := range ordered {
if ass.Value {
installed, ok := toInstall[ass.Package.GetFingerPrint()]
if !ok {
// It was a dep already installed in the system, so we can skip it safely
continue ORDER
}
treePackage, err := installed.Repository.GetTree().GetDatabase().FindPackage(ass.Package)
if err != nil {
return toFinalize, errors.Wrap(err, "Error getting package "+ass.Package.HumanReadableString())
}
toFinalize = append(toFinalize, treePackage)
}
if err := populate(ordered); err != nil {
return toFinalize, err
}
}
}
@@ -127,10 +135,8 @@ func OrderFinalizers(allRepos types.PackageDatabase, toInstall map[string]Artifa
return toFinalize, err
}
for _, o := range assertions {
if o.Value {
toFinalize = append(toFinalize, o.Package)
}
if err := populate(assertions); err != nil {
return toFinalize, err
}
}