diff --git a/cmd/build.go b/cmd/build.go index d5b882e0..b7301d3b 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -15,11 +15,12 @@ package cmd import ( + "fmt" "io/ioutil" "os" - "regexp" "runtime" + _gentoo "github.com/Sabayon/pkgs-checker/pkg/gentoo" "github.com/mudler/luet/pkg/compiler" "github.com/mudler/luet/pkg/compiler/backend" . "github.com/mudler/luet/pkg/logger" @@ -95,15 +96,18 @@ var buildCmd = &cobra.Command{ luetCompiler.SetCompressionType(compiler.CompressionImplementation(compressionType)) if !all { for _, a := range args { - decodepackage, err := regexp.Compile(`^([<>]?\~?=?)((([^\/]+)\/)?(?U)(\S+))(-(\d+(\.\d+)*[a-z]?(_(alpha|beta|pre|rc|p)\d*)*(-r\d+)?))?$`) + gp, err := _gentoo.ParsePackageStr(a) if err != nil { - Fatal("Error: " + err.Error()) + Fatal("Invalid package string ", a, ": ", err.Error()) } - packageInfo := decodepackage.FindAllStringSubmatch(a, -1) - category := packageInfo[0][4] - name := packageInfo[0][5] - version := packageInfo[0][1] + packageInfo[0][7] - spec, err := luetCompiler.FromPackage(&pkg.DefaultPackage{Name: name, Category: category, Version: version}) + + pack := &pkg.DefaultPackage{ + Name: gp.Name, + Version: fmt.Sprintf("%s%s", gp.Version, gp.VersionSuffix), + Category: gp.Category, + Uri: make([]string, 0), + } + spec, err := luetCompiler.FromPackage(pack) if err != nil { Fatal("Error: " + err.Error()) }