MCPcopy Index your code
hub / github.com/aptly-dev/aptly / listReferencedFilesByComponent

Method listReferencedFilesByComponent

deb/publish.go:1541–1605  ·  view source on GitHub ↗
(prefix string, components []string,
	collectionFactory *CollectionFactory, progress aptly.Progress)

Source from the content-addressed store, hash-verified

1539}
1540
1541func (collection *PublishedRepoCollection) listReferencedFilesByComponent(prefix string, components []string,
1542 collectionFactory *CollectionFactory, progress aptly.Progress) (map[string][]string, error) {
1543 referencedFiles := map[string][]string{}
1544 processedComponentRefs := map[string]*PackageRefList{}
1545
1546 for _, r := range collection.list {
1547 if r.Prefix == prefix && !r.MultiDist {
1548 matches := false
1549
1550 repoComponents := r.Components()
1551
1552 for _, component := range components {
1553 if utils.StrSliceHasItem(repoComponents, component) {
1554 matches = true
1555 break
1556 }
1557 }
1558
1559 if !matches {
1560 continue
1561 }
1562
1563 if err := collection.LoadComplete(r, collectionFactory); err != nil {
1564 return nil, err
1565 }
1566
1567 for _, component := range components {
1568 if utils.StrSliceHasItem(repoComponents, component) {
1569 unseenRefs := r.RefList(component)
1570 processedRefs := processedComponentRefs[component]
1571 if processedRefs != nil {
1572 unseenRefs = unseenRefs.Subtract(processedRefs)
1573 } else {
1574 processedRefs = NewPackageRefList()
1575 }
1576
1577 if unseenRefs.Len() == 0 {
1578 continue
1579 }
1580 processedComponentRefs[component] = processedRefs.Merge(unseenRefs, false, true)
1581
1582 packageList, err := NewPackageListFromRefList(unseenRefs, collectionFactory.PackageCollection(), progress)
1583 if err != nil {
1584 return nil, err
1585 }
1586
1587 _ = packageList.ForEach(func(p *Package) error {
1588 poolDir, err := p.PoolDirectory()
1589 if err != nil {
1590 return err
1591 }
1592
1593 for _, f := range p.Files() {
1594 referencedFiles[component] = append(referencedFiles[component], filepath.Join(poolDir, f.Filename))
1595 }
1596
1597 return nil
1598 })

Callers 3

Calls 13

LoadCompleteMethod · 0.95
StrSliceHasItemFunction · 0.92
NewPackageRefListFunction · 0.85
SubtractMethod · 0.80
MergeMethod · 0.80
PackageCollectionMethod · 0.80
PoolDirectoryMethod · 0.80
FilesMethod · 0.80
ComponentsMethod · 0.45
RefListMethod · 0.45
LenMethod · 0.45

Tested by 2