2121# Visit https://github.com/aboutcode-org/scancode.io for support and download.
2222
2323import logging
24- < << << << HEAD
25- == == == =
26- from pathlib import Path
27- > >> >> >> ca3a1ac0c0147a6f3f59999a67bf586eab9b8a36
2824from aboutcode .pipeline import optional_step
2925from scanpipe import pipes
3026from scanpipe .pipelines import Pipeline
3127from scanpipe .pipes import d2d
28+ from scanpipe .pipes import d2d_config
3229from scanpipe .pipes import flag
3330from scanpipe .pipes import input
3431from scanpipe .pipes import matchcode
@@ -72,6 +69,8 @@ def steps(cls):
7269 cls .flag_empty_files ,
7370 cls .flag_whitespace_files ,
7471 cls .flag_ignored_resources ,
72+ cls .load_ecosystem_config ,
73+ cls .map_ruby ,
7574 cls .map_about_files ,
7675 cls .map_checksum ,
7776 cls .match_archives_to_purldb ,
@@ -80,6 +79,7 @@ def steps(cls):
8079 cls .map_jar_to_source ,
8180 cls .map_javascript ,
8281 cls .map_javascript_symbols ,
82+ cls .map_javascript_strings ,
8383 cls .map_elf ,
8484 cls .map_macho ,
8585 cls .map_winpe ,
@@ -102,6 +102,7 @@ def steps(cls):
102102 cls .create_local_files_packages ,
103103 )
104104
105+
105106 purldb_package_extensions = [".jar" , ".war" , ".zip" ]
106107 purldb_resource_extensions = [
107108 ".map" ,
@@ -197,6 +198,15 @@ def flag_whitespace_files(self):
197198 """Flag whitespace files with size less than or equal to 100 byte as ignored."""
198199 d2d .flag_whitespace_files (project = self .project )
199200
201+ def load_ecosystem_config (self ):
202+ """Load ecosystem specific configurations for d2d steps for selected options."""
203+ d2d_config .load_ecosystem_config (pipeline = self , options = self .selected_groups )
204+
205+ @optional_step ("Ruby" )
206+ def map_ruby (self ):
207+ """Load Ruby specific configurations for d2d steps."""
208+ pass
209+
200210 def map_about_files (self ):
201211 """Map ``from/`` .ABOUT files to their related ``to/`` resources."""
202212 d2d .map_about_files (project = self .project , logger = self .log )
@@ -213,7 +223,7 @@ def match_archives_to_purldb(self):
213223
214224 d2d .match_purldb_resources (
215225 project = self .project ,
216- extensions = self .purldb_package_extensions ,
226+ extensions = self .matchable_package_extensions ,
217227 matcher_func = d2d .match_purldb_package ,
218228 logger = self .log ,
219229 )
@@ -246,6 +256,11 @@ def map_javascript_symbols(self):
246256 """Map deployed JavaScript, TypeScript to its sources using symbols."""
247257 d2d .map_javascript_symbols (project = self .project , logger = self .log )
248258
259+ @optional_step ("JavaScript" )
260+ def map_javascript_strings (self ):
261+ """Map deployed JavaScript, TypeScript to its sources using string literals."""
262+ d2d .map_javascript_strings (project = self .project , logger = self .log )
263+
249264 @optional_step ("Elf" )
250265 def map_elf (self ):
251266 """Map ELF binaries to their sources using dwarf paths and symbols."""
@@ -291,7 +306,7 @@ def match_resources_to_purldb(self):
291306
292307 d2d .match_purldb_resources (
293308 project = self .project ,
294- extensions = self .purldb_resource_extensions ,
309+ extensions = self .matchable_resource_extensions ,
295310 matcher_func = d2d .match_purldb_resource ,
296311 logger = self .log ,
297312 )
@@ -329,6 +344,7 @@ def flag_mapped_resources_archives_and_ignored_directories(self):
329344 def perform_house_keeping_tasks (self ):
330345 """
331346 On deployed side
347+ - Ignore specific files based on ecosystem based configurations.
332348 - PurlDB match files with ``no-java-source`` and empty status,
333349 if no match is found update status to ``requires-review``.
334350 - Update status for uninteresting files.
@@ -339,9 +355,14 @@ def perform_house_keeping_tasks(self):
339355 """
340356 d2d .match_resources_with_no_java_source (project = self .project , logger = self .log )
341357 d2d .handle_dangling_deployed_legal_files (project = self .project , logger = self .log )
358+ d2d .ignore_unmapped_resources_from_config (
359+ project = self .project ,
360+ patterns_to_ignore = self .ecosystem_config .deployed_resource_path_exclusions ,
361+ logger = self .log ,
362+ )
342363 d2d .match_unmapped_resources (
343364 project = self .project ,
344- matched_extensions = self .purldb_resource_extensions ,
365+ matched_extensions = self .ecosystem_config . matchable_resource_extensions ,
345366 logger = self .log ,
346367 )
347368 d2d .flag_undeployed_resources (project = self .project )
@@ -377,5 +398,5 @@ def flag_deployed_from_resources_with_missing_license(self):
377398 """Update the status for deployed from files with missing license."""
378399 d2d .flag_deployed_from_resources_with_missing_license (
379400 self .project ,
380- doc_extensions = self .doc_extensions ,
401+ doc_extensions = self .ecosystem_config . doc_extensions ,
381402 )
0 commit comments