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 var Verbose bool
const ( const (
LuetCLIVersion = "0.32.2" LuetCLIVersion = "0.32.3"
LuetEnvPrefix = "LUET" LuetEnvPrefix = "LUET"
) )

View File

@@ -17,6 +17,7 @@ package logger
import ( import (
"fmt" "fmt"
"os"
"path" "path"
"regexp" "regexp"
"runtime" "runtime"
@@ -254,7 +255,7 @@ func (l *Logger) Tracef(t string, args ...interface{}) {
func (l *Logger) Fatal(args ...interface{}) { func (l *Logger) Fatal(args ...interface{}) {
l.send(log.LevelFatal, "", args...) l.send(log.LevelFatal, "", args...)
panic("fatal error") os.Exit(2)
} }
func (l *Logger) Info(args ...interface{}) { 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) { func OrderFinalizers(allRepos types.PackageDatabase, toInstall map[string]ArtifactMatch, solution types.PackagesAssertions) ([]*types.Package, error) {
var toFinalize []*types.Package 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 { if len(toInstall) == 1 {
for _, w := range toInstall { for _, w := range toInstall {
if fileHelper.Exists(w.Package.Rel(tree.FinalizerFile)) { if fileHelper.Exists(w.Package.Rel(tree.FinalizerFile)) {
@@ -103,21 +124,8 @@ func OrderFinalizers(allRepos types.PackageDatabase, toInstall map[string]Artifa
if err != nil { if err != nil {
return toFinalize, errors.Wrap(err, "While order a solution for "+w.Package.HumanReadableString()) return toFinalize, errors.Wrap(err, "While order a solution for "+w.Package.HumanReadableString())
} }
ORDER: if err := populate(ordered); err != nil {
for _, ass := range ordered { return toFinalize, err
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)
}
} }
} }
} }
@@ -127,10 +135,8 @@ func OrderFinalizers(allRepos types.PackageDatabase, toInstall map[string]Artifa
return toFinalize, err return toFinalize, err
} }
for _, o := range assertions { if err := populate(assertions); err != nil {
if o.Value { return toFinalize, err
toFinalize = append(toFinalize, o.Package)
}
} }
} }