diff --git a/cmd/tree/pkglist.go b/cmd/tree/pkglist.go index b319dd9c..7e92f9c9 100644 --- a/cmd/tree/pkglist.go +++ b/cmd/tree/pkglist.go @@ -18,10 +18,10 @@ package cmd_tree import ( "fmt" - "regexp" "sort" //. "github.com/mudler/luet/pkg/config" + helpers "github.com/mudler/luet/pkg/helpers" . "github.com/mudler/luet/pkg/logger" pkg "github.com/mudler/luet/pkg/package" tree "github.com/mudler/luet/pkg/tree" @@ -73,26 +73,13 @@ func NewTreePkglistCommand() *cobra.Command { Fatal("Error on load tree ", err) } - regExcludes := make([]*regexp.Regexp, len(excludes)) - if len(excludes) > 0 { - for idx, excreg := range excludes { - re := regexp.MustCompile(excreg) - if re == nil { - Fatal("Invalid regex " + excreg + "!") - } - regExcludes[idx] = re - } + regExcludes, err := helpers.CreateRegexArray(excludes) + if err != nil { + Fatal(err.Error()) } - - regMatches := make([]*regexp.Regexp, len(matches)) - if len(matches) > 0 { - for idx, mreg := range matches { - re := regexp.MustCompile(mreg) - if re == nil { - Fatal("Invalid regex " + mreg + "!") - } - regMatches[idx] = re - } + regMatches, err := helpers.CreateRegexArray(matches) + if err != nil { + Fatal(err.Error()) } plist := make([]string, 0) diff --git a/pkg/helpers/cli.go b/pkg/helpers/cli.go index 5a149285..536a9c44 100644 --- a/pkg/helpers/cli.go +++ b/pkg/helpers/cli.go @@ -17,12 +17,29 @@ package helpers import ( + "errors" "fmt" + "regexp" _gentoo "github.com/Sabayon/pkgs-checker/pkg/gentoo" pkg "github.com/mudler/luet/pkg/package" ) +func CreateRegexArray(rgx []string) ([]*regexp.Regexp, error) { + ans := make([]*regexp.Regexp, len(rgx)) + if len(rgx) > 0 { + for idx, reg := range rgx { + re := regexp.MustCompile(reg) + if re == nil { + return nil, errors.New("Invalid regex " + reg + "!") + } + ans[idx] = re + } + } + + return ans, nil +} + func ParsePackageStr(p string) (*pkg.DefaultPackage, error) { gp, err := _gentoo.ParsePackageStr(p) if err != nil {