mirror of
https://github.com/mudler/luet.git
synced 2025-07-16 16:31:33 +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{
|
pack := &pkg.DefaultPackage{
|
||||||
Name: gp.Name,
|
Name: gp.Name,
|
||||||
Version: fmt.Sprintf("%s%s%s", gp.Condition.String(), gp.Version, gp.VersionSuffix),
|
Version: fmt.Sprintf("%s%s%s",
|
||||||
|
pkg.PkgSelectorConditionFromInt(gp.Condition.Int()).String(),
|
||||||
|
gp.Version,
|
||||||
|
gp.VersionSuffix,
|
||||||
|
),
|
||||||
Category: gp.Category,
|
Category: gp.Category,
|
||||||
Uri: make([]string, 0),
|
Uri: make([]string, 0),
|
||||||
}
|
}
|
||||||
|
@ -48,18 +48,18 @@ var installCmd = &cobra.Command{
|
|||||||
Fatal("Invalid package string ", a, ": ", err.Error())
|
Fatal("Invalid package string ", a, ": ", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
cond := gp.Condition.String()
|
|
||||||
if cond == "=" {
|
|
||||||
cond = ""
|
|
||||||
}
|
|
||||||
if gp.Version == "" {
|
if gp.Version == "" {
|
||||||
gp.Version = "0"
|
gp.Version = "0"
|
||||||
gp.Condition = _gentoo.PkgCondGreaterEqual
|
gp.Condition = _gentoo.PkgCondGreaterEqual
|
||||||
}
|
}
|
||||||
|
|
||||||
pack := &pkg.DefaultPackage{
|
pack := &pkg.DefaultPackage{
|
||||||
Name: gp.Name,
|
Name: gp.Name,
|
||||||
Version: fmt.Sprintf("%s%s%s", cond, gp.Version, gp.VersionSuffix),
|
Version: fmt.Sprintf("%s%s%s",
|
||||||
|
pkg.PkgSelectorConditionFromInt(gp.Condition.Int()).String(),
|
||||||
|
gp.Version,
|
||||||
|
gp.VersionSuffix,
|
||||||
|
),
|
||||||
Category: gp.Category,
|
Category: gp.Category,
|
||||||
Uri: make([]string, 0),
|
Uri: make([]string, 0),
|
||||||
}
|
}
|
||||||
|
@ -50,8 +50,12 @@ var uninstallCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
pack := &pkg.DefaultPackage{
|
pack := &pkg.DefaultPackage{
|
||||||
Name: gp.Name,
|
Name: gp.Name,
|
||||||
Version: fmt.Sprintf("%s%s%s", gp.Condition.String(), gp.Version, gp.VersionSuffix),
|
Version: fmt.Sprintf("%s%s%s",
|
||||||
|
pkg.PkgSelectorConditionFromInt(gp.Condition.Int()).String(),
|
||||||
|
gp.Version,
|
||||||
|
gp.VersionSuffix,
|
||||||
|
),
|
||||||
Category: gp.Category,
|
Category: gp.Category,
|
||||||
Uri: make([]string, 0),
|
Uri: make([]string, 0),
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,77 @@ const (
|
|||||||
PkgCondMatchVersion = 8
|
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) {
|
func ParseVersion(v string) (PkgVersionSelector, error) {
|
||||||
var ans PkgVersionSelector = PkgVersionSelector{
|
var ans PkgVersionSelector = PkgVersionSelector{
|
||||||
Version: "",
|
Version: "",
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
package pkg_test
|
package pkg_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
gentoo "github.com/Sabayon/pkgs-checker/pkg/gentoo"
|
||||||
|
|
||||||
. "github.com/mudler/luet/pkg/package"
|
. "github.com/mudler/luet/pkg/package"
|
||||||
. "github.com/onsi/ginkgo"
|
. "github.com/onsi/ginkgo"
|
||||||
. "github.com/onsi/gomega"
|
. "github.com/onsi/gomega"
|
||||||
@ -181,4 +183,15 @@ var _ = Describe("Versions", func() {
|
|||||||
Expect(match).Should(Equal(true))
|
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