Skip to content

Commit 5d7a4a2

Browse files
committed
Add support for go path collection
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 431867e commit 5d7a4a2

File tree

4 files changed

+24
-9
lines changed

4 files changed

+24
-9
lines changed

scanpipe/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,8 +2031,8 @@ def mach_os(self):
20312031
| models.Q(mimetype__icontains="application/x-mach-binary")
20322032
)
20332033

2034-
def is_executable_binary(self):
2035-
return self.elfs().union(self.win_exes(), self.mach_os())
2034+
def executable_binaries(self):
2035+
return self.union(self.win_exes(), self.mach_os(), self.elfs())
20362036

20372037

20382038
class ScanFieldsModelMixin(models.Model):

scanpipe/pipelines/deploy_to_develop.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,14 @@ def map_elf(self):
194194
"""
195195
Map DWARF paths using similarities of path suffixes.
196196
"""
197-
d2d.map_elf(project=self.project, logger=self.log)
197+
d2d.map_elfs(project=self.project, logger=self.log)
198+
199+
@group("Go")
200+
def map_go(self):
201+
"""
202+
Map DWARF paths using similarities of path suffixes.
203+
"""
204+
d2d.map_go_paths(project=self.project, logger=self.log)
198205

199206
def match_directories_to_purldb(self):
200207
"""Match selected directories in PurlDB."""

scanpipe/pipes/d2d.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
from django.template.defaultfilters import pluralize
3939

4040
from commoncode.paths import common_prefix
41+
from go_inspector.plugin import collect_and_parse_symbols
4142
from elf_inspector.dwarf import get_dwarf_paths
4243
from extractcode import EXTRACT_SUFFIX
4344
from packagedcode.npm import NpmPackageJsonHandler
@@ -1751,19 +1752,19 @@ def _map_dwarf_path_resource(
17511752
)
17521753

17531754

1754-
def map_elf(project, logger=None):
1755+
def map_paths(project, file_type, collect_paths_func, logger=None):
17551756
"""Map DWARF paths using similarities of path suffixes."""
1756-
project_files = project.codebaseresources.elfs().no_status()
1757+
project_files = getattr(project.codebaseresources, file_type)()
17571758
from_resources = project_files.from_codebase()
17581759
to_resources = project_files.to_codebase().has_no_relation()
17591760
for resource in to_resources:
1760-
dwarf_paths = get_dwarf_paths(resource.location_path)
1761-
resource.update_extra_data(dwarf_paths)
1761+
paths = collect_paths_func(resource.location_path)
1762+
resource.update_extra_data(paths)
17621763
resource_count = to_resources.count()
17631764

17641765
if logger:
17651766
logger(
1766-
f"Mapping {resource_count:,d} to/ resources using DWARF paths "
1767+
f"Mapping {resource_count:,d} to/ resources using paths "
17671768
f"with {from_resources.count():,d} from/ resources."
17681769
)
17691770

@@ -1783,3 +1784,9 @@ def map_elf(project, logger=None):
17831784
from_resources_index,
17841785
logger=logger,
17851786
)
1787+
1788+
def map_elfs(project, logger=None):
1789+
map_paths(project, "elfs", get_dwarf_paths, logger)
1790+
1791+
def map_go_paths(project, logger=None):
1792+
map_paths(project, "executable_binaries", collect_and_parse_symbols, logger)

setup.cfg

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,9 @@ install_requires =
7878
# FetchCode
7979
fetchcode-container==1.2.3.210512; sys_platform == "linux"
8080
# Inspectors
81-
python-inspector==0.12.0
8281
elf-inspector==0.0.1
82+
go-inspector==0.2.2
83+
python-inspector==0.12.0
8384
source-inspector==0.3.0
8485
aboutcode-toolkit==10.1.0
8586
# Utilities

0 commit comments

Comments
 (0)