Skip to content

Commit 6624a82

Browse files
committed
Revert: all: account for language package overwrites
This reverts commit ff0aeab. Signed-off-by: crozzy <joseph.crosland@gmail.com>
1 parent ef2a86e commit 6624a82

File tree

17 files changed

+312
-245
lines changed

17 files changed

+312
-245
lines changed

gobin/coalescer.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package gobin
2+
3+
import (
4+
"context"
5+
"strings"
6+
7+
"github.com/quay/claircore"
8+
"github.com/quay/claircore/indexer"
9+
)
10+
11+
type coalescer struct{}
12+
13+
func (c *coalescer) Coalesce(ctx context.Context, ls []*indexer.LayerArtifacts) (*claircore.IndexReport, error) {
14+
ir := &claircore.IndexReport{
15+
Environments: map[string][]*claircore.Environment{},
16+
Packages: map[string]*claircore.Package{},
17+
Repositories: map[string]*claircore.Repository{},
18+
}
19+
for _, l := range ls {
20+
var rid string
21+
for _, r := range l.Repos {
22+
// Magic strings copied out of the osv package.
23+
if r.Name != `go` || r.URI != `https://pkg.go.dev/` {
24+
continue
25+
}
26+
rid = r.ID
27+
ir.Repositories[r.ID] = r
28+
break
29+
}
30+
for _, pkg := range l.Pkgs {
31+
if !strings.HasPrefix(pkg.PackageDB, "go:") {
32+
continue
33+
}
34+
ir.Packages[pkg.ID] = pkg
35+
ir.Environments[pkg.ID] = []*claircore.Environment{
36+
{
37+
PackageDB: pkg.PackageDB,
38+
IntroducedIn: l.Hash,
39+
RepositoryIDs: []string{rid},
40+
},
41+
}
42+
}
43+
}
44+
return ir, nil
45+
}

gobin/ecosystem.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@ import (
44
"context"
55

66
"github.com/quay/claircore/indexer"
7-
"github.com/quay/claircore/language"
87
)
98

109
// NewEcosystem provides the ecosystem for handling go binaries.
11-
func NewEcosystem(_ context.Context) *indexer.Ecosystem {
10+
func NewEcosystem(ctx context.Context) *indexer.Ecosystem {
1211
return &indexer.Ecosystem{
1312
Name: "gobin",
1413
PackageScanners: func(context.Context) ([]indexer.PackageScanner, error) {
1514
return []indexer.PackageScanner{Detector{}}, nil
1615
},
1716
DistributionScanners: func(context.Context) ([]indexer.DistributionScanner, error) { return nil, nil },
1817
RepositoryScanners: func(context.Context) ([]indexer.RepositoryScanner, error) { return nil, nil },
19-
Coalescer: language.NewCoalescer,
18+
Coalescer: func(context.Context) (indexer.Coalescer, error) { return &coalescer{}, nil },
2019
}
2120
}

gobin/gobin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ type Detector struct{}
3434

3535
const (
3636
detectorName = `gobin`
37-
detectorVersion = `8`
37+
detectorVersion = `7`
3838
detectorKind = `package`
3939
)
4040

java/coalescer.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package java
2+
3+
import (
4+
"context"
5+
6+
"github.com/quay/claircore"
7+
"github.com/quay/claircore/indexer"
8+
)
9+
10+
type coalescer struct{}
11+
12+
func (*coalescer) Coalesce(ctx context.Context, ls []*indexer.LayerArtifacts) (*claircore.IndexReport, error) {
13+
ir := &claircore.IndexReport{
14+
Environments: map[string][]*claircore.Environment{},
15+
Packages: map[string]*claircore.Package{},
16+
Repositories: map[string]*claircore.Repository{},
17+
}
18+
19+
for _, l := range ls {
20+
// If we didn't find at least one maven repo in this layer
21+
// no point in searching for packages.
22+
if len(l.Repos) == 0 {
23+
continue
24+
}
25+
rs := make([]string, len(l.Repos))
26+
for i, r := range l.Repos {
27+
rs[i] = r.ID
28+
ir.Repositories[r.ID] = r
29+
}
30+
for _, pkg := range l.Pkgs {
31+
ir.Packages[pkg.ID] = pkg
32+
ir.Environments[pkg.ID] = []*claircore.Environment{
33+
{
34+
PackageDB: pkg.PackageDB,
35+
IntroducedIn: l.Hash,
36+
RepositoryIDs: rs,
37+
},
38+
}
39+
}
40+
}
41+
return ir, nil
42+
}

java/ecosystem.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import (
44
"context"
55

66
"github.com/quay/claircore/indexer"
7-
"github.com/quay/claircore/language"
87
)
98

109
// NewEcosystem provides the set of scanners for the java ecosystem.
11-
func NewEcosystem(_ context.Context) *indexer.Ecosystem {
10+
func NewEcosystem(ctx context.Context) *indexer.Ecosystem {
1211
return &indexer.Ecosystem{
1312
PackageScanners: func(_ context.Context) ([]indexer.PackageScanner, error) {
1413
return []indexer.PackageScanner{&Scanner{}}, nil
@@ -17,6 +16,8 @@ func NewEcosystem(_ context.Context) *indexer.Ecosystem {
1716
RepositoryScanners: func(_ context.Context) ([]indexer.RepositoryScanner, error) {
1817
return nil, nil
1918
},
20-
Coalescer: language.NewCoalescer,
19+
Coalescer: func(_ context.Context) (indexer.Coalescer, error) {
20+
return (*coalescer)(nil), nil
21+
},
2122
}
2223
}

language/coalescer.go

Lines changed: 0 additions & 74 deletions
This file was deleted.

language/coalescer_test.go

Lines changed: 0 additions & 155 deletions
This file was deleted.

0 commit comments

Comments
 (0)