@@ -52,6 +52,7 @@ def main():
5252
5353 scanned_result = []
5454 license_list = []
55+ scanoss_result = []
5556 time_out = 120
5657 core = - 1
5758
@@ -117,19 +118,16 @@ def main():
117118 success , _result_log ["Scan Result" ], scanned_result , license_list = run_scan (path_to_scan , output_file_name ,
118119 write_json_file , core , True ,
119120 print_matched_text , format , True ,
120- time_out , correct_mode ,
121- correct_filepath )
121+ time_out , correct_mode , correct_filepath )
122122 elif selected_scanner == 'scanoss' :
123123 scanned_result = run_scanoss_py (path_to_scan , output_file_name , format , True , write_json_file )
124124 elif selected_scanner == 'all' or selected_scanner == '' :
125- success , _result_log ["Scan Result" ], scanned_result , license_list = run_all_scanners (path_to_scan , output_file_name ,
126- write_json_file , core ,
127- print_matched_text , format , True ,
128- time_out )
125+ success , _result_log ["Scan Result" ], scanned_result , license_list , scanoss_result = run_all_scanners (
126+ path_to_scan , output_file_name , write_json_file , core , print_matched_text , format , True , time_out )
129127 else :
130128 print_help_msg_source_scanner ()
131129 sys .exit (1 )
132- create_report_file (_start_time , scanned_result , license_list , selected_scanner , print_matched_text ,
130+ create_report_file (_start_time , scanned_result , license_list , scanoss_result , selected_scanner , print_matched_text ,
133131 output_path , output_file , output_extension , correct_mode , correct_filepath , path_to_scan )
134132 try :
135133 logger .info (yaml .safe_dump (_result_log , allow_unicode = True , sort_keys = True ))
@@ -140,7 +138,7 @@ def main():
140138 sys .exit (1 )
141139
142140
143- def create_report_file (_start_time , scanned_result , license_list , selected_scanner , need_license = False ,
141+ def create_report_file (_start_time , scanned_result , license_list , scanoss_result , selected_scanner , need_license = False ,
144142 output_path = "" , output_file = "" , output_extension = "" , correct_mode = True , correct_filepath = "" ,
145143 path_to_scan = "" ):
146144 """
@@ -173,24 +171,33 @@ def create_report_file(_start_time, scanned_result, license_list, selected_scann
173171 scanned_result = sorted (scanned_result , key = lambda row : ('' .join (row .licenses )))
174172
175173 if selected_scanner == 'scancode' or output_extension == _json_ext :
176- sheet_list [SCANOSS_SHEET_NAME ] = [scan_item .get_row_to_print () for scan_item in scanned_result ]
174+ sheet_list [SCANOSS_SHEET_NAME ] = []
175+ for scan_item in scanned_result :
176+ for row in scan_item .get_row_to_print ():
177+ sheet_list [SCANOSS_SHEET_NAME ].append (row )
177178
178179 elif selected_scanner == 'scanoss' :
179- sheet_list [SCANOSS_SHEET_NAME ] = [scan_item .get_row_to_print_for_scanoss () for scan_item in scanned_result ]
180+ sheet_list [SCANOSS_SHEET_NAME ] = []
181+ for scan_item in scanned_result :
182+ for row in scan_item .get_row_to_print_for_scanoss ():
183+ sheet_list [SCANOSS_SHEET_NAME ].append (row )
180184 extended_header = SCANOSS_HEADER
181185
182186 else :
183- sheet_list [SCANOSS_SHEET_NAME ] = [scan_item .get_row_to_print_for_all_scanner () for scan_item in scanned_result ]
187+ sheet_list [SCANOSS_SHEET_NAME ] = []
188+ for scan_item in scanned_result :
189+ for row in scan_item .get_row_to_print_for_all_scanner ():
190+ sheet_list [SCANOSS_SHEET_NAME ].append (row )
184191 extended_header = MERGED_HEADER
185192
186193 if need_license :
187194 if selected_scanner == 'scancode' or output_extension == _json_ext :
188195 sheet_list ["scancode_reference" ] = get_license_list_to_print (license_list )
189196 elif selected_scanner == 'scanoss' :
190- sheet_list ["scanoss_reference" ] = get_scanoss_extra_info (scanned_result )
197+ sheet_list ["scanoss_reference" ] = get_scanoss_extra_info (scanoss_result )
191198 else :
192199 sheet_list ["scancode_reference" ] = get_license_list_to_print (license_list )
193- sheet_list ["scanoss_reference" ] = get_scanoss_extra_info (scanned_result )
200+ sheet_list ["scanoss_reference" ] = get_scanoss_extra_info (scanoss_result )
194201
195202 if correct_mode :
196203 success , msg_correct , correct_list = correct_with_yaml (correct_filepath , path_to_scan , sheet_list )
@@ -242,16 +249,17 @@ def run_all_scanners(path_to_scan, output_file_name="", _write_json_file=False,
242249 False , "" )
243250 scanoss_result = run_scanoss_py (path_to_scan , output_file_name , format , called_by_cli , _write_json_file )
244251
252+ scanoss_result_for_merging = copy .deepcopy (scanoss_result )
245253 for file_in_scancode_result in scancode_result :
246254 per_file_result = copy .deepcopy (file_in_scancode_result )
247- if per_file_result in scanoss_result :
248- per_file_result . merge_scan_item ( scanoss_result . pop (scanoss_result .index (file_in_scancode_result ) ))
255+ if per_file_result in scanoss_result_for_merging : # Remove SCANOSS result if Scancode result exist
256+ scanoss_result_for_merging . pop (scanoss_result_for_merging .index (file_in_scancode_result ))
249257 merged_result .append (per_file_result )
250- if scanoss_result :
251- for file_left_in_scanoss_result in scanoss_result :
258+ if scanoss_result_for_merging :
259+ for file_left_in_scanoss_result in scanoss_result_for_merging :
252260 merged_result .append (file_left_in_scanoss_result )
253261
254- return success , _result_log ["Scan Result" ], merged_result , license_list
262+ return success , _result_log ["Scan Result" ], merged_result , license_list , scanoss_result
255263
256264
257265if __name__ == '__main__' :
0 commit comments