Skip to content

Commit dbbeb09

Browse files
authored
Merge pull request #96 from fosslight/correct_fix
When merging src to bin, remove src info instead of excluding
2 parents be4de7c + 0c4e5ca commit dbbeb09

File tree

1 file changed

+18
-31
lines changed

1 file changed

+18
-31
lines changed

src/fosslight_scanner/common.py

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import shutil
1010
import pandas as pd
1111
import yaml
12-
import copy
1312
import fosslight_util.constant as constant
1413
from fosslight_util.parsing_yaml import parsing_yml
1514
from fosslight_util.write_yaml import create_yaml_with_ossitem
@@ -212,38 +211,26 @@ def correct_scanner_result(_output_dir, output_files, output_extension, exist_sr
212211

213212
if exist_src and exist_bin:
214213
try:
215-
dup_bin_list = []
216-
exclude_list = []
217-
for src_item in src_oss_list:
218-
dup_bin = ''
219-
for idx, bin_item in enumerate(bin_oss_list):
220-
if (not src_item.source_name_or_path) or src_item.exclude or bin_item.exclude:
214+
remove_src_idx_list = []
215+
for idx_src, src_item in enumerate(src_oss_list):
216+
dup_flag = False
217+
for bin_item in bin_oss_list:
218+
if (not src_item.source_name_or_path):
221219
continue
222220
if src_item.source_name_or_path[0] == bin_item.source_name_or_path[0]:
223-
dup_bin = copy.deepcopy(bin_item)
224-
if not dup_bin.license:
225-
if dup_bin.exclude:
226-
src_item.exclude = dup_bin.exclude
227-
dup_bin.set_sheet_item(src_item.get_print_array()[0])
228-
if dup_bin.comment:
229-
dup_bin.comment += '/'
230-
dup_bin.comment += 'Loaded from SRC OSS info'
231-
dup_bin_list.append(dup_bin)
232-
exclude_list.append(idx)
233-
if dup_bin:
234-
src_item.exclude = True
235-
if src_item.comment:
236-
src_item.comment += '/'
237-
src_item.comment += 'Excluded by duplicated binary within BIN'
238-
duplicates = True
239-
240-
exclude_list = list(set(exclude_list))
241-
for idx in exclude_list:
242-
bin_oss_list[idx].exclude = True
243-
if bin_oss_list[idx].comment:
244-
bin_oss_list[idx].comment += '/'
245-
bin_oss_list[idx].comment += 'Excluded by SRC OSS info'
246-
bin_oss_list.extend(dup_bin_list)
221+
dup_flag = True
222+
if not bin_item.license and src_item.license:
223+
src_item.exclude = bin_item.exclude
224+
bin_item.set_sheet_item(src_item.get_print_array(constant.FL_BINARY)[0])
225+
if bin_item.comment:
226+
bin_item.comment += '/'
227+
bin_item.comment += 'Loaded from SRC OSS info'
228+
if dup_flag:
229+
remove_src_idx_list.append(idx_src)
230+
if remove_src_idx_list:
231+
duplicates = True
232+
for i in sorted(remove_src_idx_list, reverse=True):
233+
del src_oss_list[i]
247234
except Exception as ex:
248235
logger.warning(f"correct the scanner result:{ex}")
249236

0 commit comments

Comments
 (0)