Skip to content

Commit 8189930

Browse files
committed
create a type to hold dirname and manifest
1 parent 005c2c3 commit 8189930

File tree

12 files changed

+69
-62
lines changed

12 files changed

+69
-62
lines changed

cmd/filter.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func filterCommandAction(cmd *cobra.Command, args []string) error {
5555
return nil
5656
}
5757

58-
func filterPackage(cmd *cobra.Command) (map[string]packages.PackageManifest, error) {
58+
func filterPackage(cmd *cobra.Command) ([]packages.PackageDirNameAndManifest, error) {
5959
filters := filter.NewFilterRegistry()
6060

6161
if err := filters.Parse(cmd); err != nil {
@@ -74,7 +74,7 @@ func filterPackage(cmd *cobra.Command) (map[string]packages.PackageManifest, err
7474
return filtered, nil
7575
}
7676

77-
func printPkgList(pkgs map[string]packages.PackageManifest, printPackageName bool, w io.Writer) error {
77+
func printPkgList(pkgs []packages.PackageDirNameAndManifest, printPackageName bool, w io.Writer) error {
7878
enc := json.NewEncoder(w)
7979
enc.SetEscapeHTML(false)
8080
if len(pkgs) == 0 {
@@ -83,12 +83,12 @@ func printPkgList(pkgs map[string]packages.PackageManifest, printPackageName boo
8383

8484
names := make([]string, 0, len(pkgs))
8585
if printPackageName {
86-
for _, pkgManifest := range pkgs {
87-
names = append(names, pkgManifest.Name)
86+
for _, pkg := range pkgs {
87+
names = append(names, pkg.Manifest.Name)
8888
}
8989
} else {
90-
for pkgDirName := range pkgs {
91-
names = append(names, pkgDirName)
90+
for _, pkg := range pkgs {
91+
names = append(names, pkg.DirName)
9292
}
9393
}
9494

cmd/foreach.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ func foreachCommandAction(cmd *cobra.Command, args []string) error {
112112
}(packageChan)
113113
}
114114

115-
for pkgName := range filtered {
116-
packageChan <- pkgName
115+
for _, pkg := range filtered {
116+
packageChan <- pkg.DirName
117117
}
118118
close(packageChan)
119119

internal/filter/category_flag.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ func (f *CategoryFlag) Validate() error {
3030
return nil
3131
}
3232

33-
func (f *CategoryFlag) Matches(pkgDirName string, pkgManifest packages.PackageManifest) bool {
34-
return hasAnyMatch(f.values, pkgManifest.Categories)
33+
func (f *CategoryFlag) Matches(dirName string, manifest *packages.PackageManifest) bool {
34+
return hasAnyMatch(f.values, manifest.Categories)
3535
}
3636

37-
func (f *CategoryFlag) ApplyTo(pkgs map[string]packages.PackageManifest) (map[string]packages.PackageManifest, error) {
38-
filtered := make(map[string]packages.PackageManifest, len(pkgs))
39-
for pkgDirName, pkgManifest := range pkgs {
40-
if f.Matches(pkgDirName, pkgManifest) {
41-
filtered[pkgDirName] = pkgManifest
37+
func (f *CategoryFlag) ApplyTo(pkgs []packages.PackageDirNameAndManifest) ([]packages.PackageDirNameAndManifest, error) {
38+
filtered := make([]packages.PackageDirNameAndManifest, 0, len(pkgs))
39+
for _, pkg := range pkgs {
40+
if f.Matches(pkg.DirName, pkg.Manifest) {
41+
filtered = append(filtered, pkg)
4242
}
4343
}
4444
return filtered, nil

internal/filter/codeowner_flag.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ func (f *CodeOwnerFlag) Validate() error {
4242
return nil
4343
}
4444

45-
func (f *CodeOwnerFlag) Matches(pkgDirName string, pkgManifest packages.PackageManifest) bool {
46-
return hasAnyMatch(f.values, []string{pkgManifest.Owner.Github})
45+
func (f *CodeOwnerFlag) Matches(dirName string, manifest *packages.PackageManifest) bool {
46+
return hasAnyMatch(f.values, []string{manifest.Owner.Github})
4747
}
4848

49-
func (f *CodeOwnerFlag) ApplyTo(pkgs map[string]packages.PackageManifest) (map[string]packages.PackageManifest, error) {
50-
filtered := make(map[string]packages.PackageManifest, len(pkgs))
51-
for pkgDirName, pkgManifest := range pkgs {
52-
if f.Matches(pkgDirName, pkgManifest) {
53-
filtered[pkgDirName] = pkgManifest
49+
func (f *CodeOwnerFlag) ApplyTo(pkgs []packages.PackageDirNameAndManifest) ([]packages.PackageDirNameAndManifest, error) {
50+
filtered := make([]packages.PackageDirNameAndManifest, 0, len(pkgs))
51+
for _, pkg := range pkgs {
52+
if f.Matches(pkg.DirName, pkg.Manifest) {
53+
filtered = append(filtered, pkg)
5454
}
5555
}
5656
return filtered, nil

internal/filter/input_flag.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,22 @@ func (f *InputFlag) Validate() error {
3131
return nil
3232
}
3333

34-
func (f *InputFlag) Matches(pkgDirName string, pkgManifest packages.PackageManifest) bool {
34+
func (f *InputFlag) Matches(dirName string, manifest *packages.PackageManifest) bool {
3535
if f.values != nil {
36-
inputs := extractInputs(pkgManifest)
36+
inputs := extractInputs(manifest)
3737
if !hasAnyMatch(f.values, inputs) {
3838
return false
3939
}
4040
}
4141
return true
4242
}
4343

44-
func (f *InputFlag) ApplyTo(pkgs map[string]packages.PackageManifest) (map[string]packages.PackageManifest, error) {
45-
filtered := make(map[string]packages.PackageManifest, len(pkgs))
44+
func (f *InputFlag) ApplyTo(pkgs []packages.PackageDirNameAndManifest) ([]packages.PackageDirNameAndManifest, error) {
45+
filtered := make([]packages.PackageDirNameAndManifest, 0, len(pkgs))
4646

47-
for pkgName, pkgManifest := range pkgs {
48-
if f.Matches(pkgName, pkgManifest) {
49-
filtered[pkgName] = pkgManifest
47+
for _, pkg := range pkgs {
48+
if f.Matches(pkg.DirName, pkg.Manifest) {
49+
filtered = append(filtered, pkg)
5050
}
5151
}
5252
return filtered, nil

internal/filter/integrationtype_flag.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,20 @@ func (f *IntegrationTypeFlag) Validate() error {
3030
return nil
3131
}
3232

33-
func (f *IntegrationTypeFlag) Matches(pkgDirName string, pkgManifest packages.PackageManifest) bool {
33+
func (f *IntegrationTypeFlag) Matches(dirName string, manifest *packages.PackageManifest) bool {
3434
if f.values != nil {
35-
if !hasAnyMatch(f.values, []string{pkgManifest.Type}) {
35+
if !hasAnyMatch(f.values, []string{manifest.Type}) {
3636
return false
3737
}
3838
}
3939
return true
4040
}
4141

42-
func (f *IntegrationTypeFlag) ApplyTo(pkgs map[string]packages.PackageManifest) (map[string]packages.PackageManifest, error) {
43-
filtered := make(map[string]packages.PackageManifest, len(pkgs))
44-
45-
for pkgName, pkgManifest := range pkgs {
46-
if f.Matches(pkgName, pkgManifest) {
47-
filtered[pkgName] = pkgManifest
42+
func (f *IntegrationTypeFlag) ApplyTo(pkgs []packages.PackageDirNameAndManifest) ([]packages.PackageDirNameAndManifest, error) {
43+
filtered := make([]packages.PackageDirNameAndManifest, 0, len(pkgs))
44+
for _, pkg := range pkgs {
45+
if f.Matches(pkg.DirName, pkg.Manifest) {
46+
filtered = append(filtered, pkg)
4847
}
4948
}
5049
return filtered, nil

internal/filter/packagename_flag.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,20 @@ func (f *PackageNameFlag) Validate() error {
4141
return nil
4242
}
4343

44-
func (f *PackageNameFlag) Matches(pkgDirName string, pkgManifest packages.PackageManifest) bool {
44+
func (f *PackageNameFlag) Matches(dirName string, manifest *packages.PackageManifest) bool {
4545
for _, pattern := range f.patterns {
46-
if pattern.Match(pkgDirName) {
46+
if pattern.Match(dirName) {
4747
return true
4848
}
4949
}
5050
return false
5151
}
5252

53-
func (f *PackageNameFlag) ApplyTo(pkgs map[string]packages.PackageManifest) (map[string]packages.PackageManifest, error) {
54-
filtered := make(map[string]packages.PackageManifest, len(pkgs))
55-
for pkgDirName, pkgManifest := range pkgs {
56-
if f.Matches(pkgDirName, pkgManifest) {
57-
filtered[pkgDirName] = pkgManifest
53+
func (f *PackageNameFlag) ApplyTo(pkgs []packages.PackageDirNameAndManifest) ([]packages.PackageDirNameAndManifest, error) {
54+
filtered := make([]packages.PackageDirNameAndManifest, 0, len(pkgs))
55+
for _, pkg := range pkgs {
56+
if f.Matches(pkg.DirName, pkg.Manifest) {
57+
filtered = append(filtered, pkg)
5858
}
5959
}
6060
return filtered, nil

internal/filter/registry.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (r *FilterRegistry) Validate() error {
6565
return nil
6666
}
6767

68-
func (r *FilterRegistry) Execute() (filtered map[string]packages.PackageManifest, errors multierror.Error) {
68+
func (r *FilterRegistry) Execute() (filtered []packages.PackageDirNameAndManifest, errors multierror.Error) {
6969
root, err := packages.MustFindIntegrationRoot()
7070
if err != nil {
7171
return nil, multierror.Error{err}

internal/filter/specversion_flag.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,19 @@ func (f *SpecVersionFlag) Validate() error {
4040
return nil
4141
}
4242

43-
func (f *SpecVersionFlag) Matches(pkgName string, pkg packages.PackageManifest) bool {
44-
pkgVersion, err := semver.NewVersion(pkg.SpecVersion)
43+
func (f *SpecVersionFlag) Matches(dirName string, manifest *packages.PackageManifest) bool {
44+
pkgVersion, err := semver.NewVersion(manifest.SpecVersion)
4545
if err != nil {
4646
return false
4747
}
4848
return f.constraints.Check(pkgVersion)
4949
}
5050

51-
func (f *SpecVersionFlag) ApplyTo(pkgs map[string]packages.PackageManifest) (filtered map[string]packages.PackageManifest, err error) {
52-
filtered = make(map[string]packages.PackageManifest, len(pkgs))
53-
54-
for pkgName, pkg := range pkgs {
55-
if f.Matches(pkgName, pkg) {
56-
filtered[pkgName] = pkg
51+
func (f *SpecVersionFlag) ApplyTo(pkgs []packages.PackageDirNameAndManifest) ([]packages.PackageDirNameAndManifest, error) {
52+
filtered := make([]packages.PackageDirNameAndManifest, 0, len(pkgs))
53+
for _, pkg := range pkgs {
54+
if f.Matches(pkg.DirName, pkg.Manifest) {
55+
filtered = append(filtered, pkg)
5756
}
5857
}
5958
return filtered, nil

internal/filter/type.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ type Filter interface {
2323

2424
Parse(cmd *cobra.Command) error
2525
Validate() error
26-
ApplyTo(pkgs map[string]packages.PackageManifest) (map[string]packages.PackageManifest, error)
26+
ApplyTo(pkgs []packages.PackageDirNameAndManifest) ([]packages.PackageDirNameAndManifest, error)
2727
// Matches checks if a package matches the filter criteria.
28-
// pkgDirName is the directory name of the package in package root.
29-
Matches(pkgDirName string, pkgManifest packages.PackageManifest) bool
28+
// dirName is the directory name of the package in package root.
29+
Matches(dirName string, manifest *packages.PackageManifest) bool
3030
}
3131

3232
// FilterFlagBase provides common functionality for filter flags.

0 commit comments

Comments
 (0)