mirror of
https://github.com/mudler/luet.git
synced 2025-07-16 08:26:06 +00:00
Align selector logic for explicit version with PkgSelectorConditionFromInt
This commit is contained in:
parent
ebcf6075d0
commit
db7301f7bf
@ -106,8 +106,12 @@ var buildCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
pack := &pkg.DefaultPackage{
|
||||
Name: gp.Name,
|
||||
Version: fmt.Sprintf("%s%s%s", gp.Condition.String(), gp.Version, gp.VersionSuffix),
|
||||
Name: gp.Name,
|
||||
Version: fmt.Sprintf("%s%s%s",
|
||||
pkg.PkgSelectorConditionFromInt(gp.Condition.Int()).String(),
|
||||
gp.Version,
|
||||
gp.VersionSuffix,
|
||||
),
|
||||
Category: gp.Category,
|
||||
Uri: make([]string, 0),
|
||||
}
|
||||
|
@ -48,18 +48,18 @@ var installCmd = &cobra.Command{
|
||||
Fatal("Invalid package string ", a, ": ", err.Error())
|
||||
}
|
||||
|
||||
cond := gp.Condition.String()
|
||||
if cond == "=" {
|
||||
cond = ""
|
||||
}
|
||||
if gp.Version == "" {
|
||||
gp.Version = "0"
|
||||
gp.Condition = _gentoo.PkgCondGreaterEqual
|
||||
}
|
||||
|
||||
pack := &pkg.DefaultPackage{
|
||||
Name: gp.Name,
|
||||
Version: fmt.Sprintf("%s%s%s", cond, gp.Version, gp.VersionSuffix),
|
||||
Name: gp.Name,
|
||||
Version: fmt.Sprintf("%s%s%s",
|
||||
pkg.PkgSelectorConditionFromInt(gp.Condition.Int()).String(),
|
||||
gp.Version,
|
||||
gp.VersionSuffix,
|
||||
),
|
||||
Category: gp.Category,
|
||||
Uri: make([]string, 0),
|
||||
}
|
||||
|
@ -50,8 +50,12 @@ var uninstallCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
pack := &pkg.DefaultPackage{
|
||||
Name: gp.Name,
|
||||
Version: fmt.Sprintf("%s%s%s", gp.Condition.String(), gp.Version, gp.VersionSuffix),
|
||||
Name: gp.Name,
|
||||
Version: fmt.Sprintf("%s%s%s",
|
||||
pkg.PkgSelectorConditionFromInt(gp.Condition.Int()).String(),
|
||||
gp.Version,
|
||||
gp.VersionSuffix,
|
||||
),
|
||||
Category: gp.Category,
|
||||
Uri: make([]string, 0),
|
||||
}
|
||||
|
@ -55,6 +55,77 @@ const (
|
||||
PkgCondMatchVersion = 8
|
||||
)
|
||||
|
||||
func PkgSelectorConditionFromInt(c int) (ans PkgSelectorCondition) {
|
||||
if c == PkgCondGreater {
|
||||
ans = PkgCondGreater
|
||||
} else if c == PkgCondGreaterEqual {
|
||||
ans = PkgCondGreaterEqual
|
||||
} else if c == PkgCondLess {
|
||||
ans = PkgCondLess
|
||||
} else if c == PkgCondLessEqual {
|
||||
ans = PkgCondLessEqual
|
||||
} else if c == PkgCondNot {
|
||||
ans = PkgCondNot
|
||||
} else if c == PkgCondAnyRevision {
|
||||
ans = PkgCondAnyRevision
|
||||
} else if c == PkgCondMatchVersion {
|
||||
ans = PkgCondMatchVersion
|
||||
} else {
|
||||
ans = PkgCondInvalid
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (p PkgSelectorCondition) String() (ans string) {
|
||||
if p == PkgCondInvalid {
|
||||
ans = ""
|
||||
} else if p == PkgCondGreater {
|
||||
ans = ">"
|
||||
} else if p == PkgCondGreaterEqual {
|
||||
ans = ">="
|
||||
} else if p == PkgCondLess {
|
||||
ans = "<"
|
||||
} else if p == PkgCondLessEqual {
|
||||
ans = "<="
|
||||
} else if p == PkgCondEqual {
|
||||
// To permit correct matching on database
|
||||
// we currently use directly package version without =
|
||||
ans = ""
|
||||
} else if p == PkgCondNot {
|
||||
ans = "!"
|
||||
} else if p == PkgCondAnyRevision {
|
||||
ans = "~"
|
||||
} else if p == PkgCondMatchVersion {
|
||||
ans = "=*"
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (p PkgSelectorCondition) Int() (ans int) {
|
||||
if p == PkgCondInvalid {
|
||||
ans = PkgCondInvalid
|
||||
} else if p == PkgCondGreater {
|
||||
ans = PkgCondGreater
|
||||
} else if p == PkgCondGreaterEqual {
|
||||
ans = PkgCondGreaterEqual
|
||||
} else if p == PkgCondLess {
|
||||
ans = PkgCondLess
|
||||
} else if p == PkgCondLessEqual {
|
||||
ans = PkgCondLessEqual
|
||||
} else if p == PkgCondEqual {
|
||||
// To permit correct matching on database
|
||||
// we currently use directly package version without =
|
||||
ans = PkgCondEqual
|
||||
} else if p == PkgCondNot {
|
||||
ans = PkgCondNot
|
||||
} else if p == PkgCondAnyRevision {
|
||||
ans = PkgCondAnyRevision
|
||||
} else if p == PkgCondMatchVersion {
|
||||
ans = PkgCondMatchVersion
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func ParseVersion(v string) (PkgVersionSelector, error) {
|
||||
var ans PkgVersionSelector = PkgVersionSelector{
|
||||
Version: "",
|
||||
|
@ -17,6 +17,8 @@
|
||||
package pkg_test
|
||||
|
||||
import (
|
||||
gentoo "github.com/Sabayon/pkgs-checker/pkg/gentoo"
|
||||
|
||||
. "github.com/mudler/luet/pkg/package"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
@ -181,4 +183,15 @@ var _ = Describe("Versions", func() {
|
||||
Expect(match).Should(Equal(true))
|
||||
})
|
||||
})
|
||||
|
||||
Context("Condition Converter 1", func() {
|
||||
gp, err := gentoo.ParsePackageStr("=layer/build-1.0")
|
||||
var cond gentoo.PackageCond = gentoo.PkgCondEqual
|
||||
It("Converter1", func() {
|
||||
Expect(err).Should(BeNil())
|
||||
Expect((*gp).Condition).Should(Equal(cond))
|
||||
Expect(PkgSelectorConditionFromInt((*gp).Condition.Int()).String()).Should(Equal(""))
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user