Skip to content

Commit 09b2f2d

Browse files
committed
Support spdx
Signed-off-by: jiyeong.seok <[email protected]>
1 parent d7986e5 commit 09b2f2d

File tree

6 files changed

+19
-12
lines changed

6 files changed

+19
-12
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ pyparsing
22
scancode-toolkit>=32.0.2,==32.0.*
33
scanoss
44
XlsxWriter
5-
fosslight_util>=2.0.0
5+
fosslight_util>=2.0.1
66
PyYAML
77
wheel>=0.38.1
88
intbitset

src/fosslight_source/_parsing_scancode_file_item.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import os
77
import logging
88
import re
9+
import hashlib
910
import fosslight_util.constant as constant
1011
from ._license_matched import MatchedLicense
1112
from ._scan_item import SourceItem
@@ -77,6 +78,7 @@ def parsing_scancode_32_earlier(scancode_file_list: list, has_error: bool = Fals
7778
copyright_list = file.get("copyrights", [])
7879

7980
result_item = SourceItem(file_path)
81+
result_item.checksum = str(hashlib.sha1(file_path.encode()).hexdigest())
8082

8183
if has_error and "scan_errors" in file:
8284
error_msg = file.get("scan_errors", [])
@@ -205,6 +207,7 @@ def parsing_scancode_32_later(
205207
continue
206208

207209
result_item = SourceItem(file_path)
210+
result_item.checksum = str(hashlib.sha1(file_path.encode()).hexdigest())
208211

209212
if has_error:
210213
error_msg = file.get("scan_errors", [])

src/fosslight_source/_parsing_scanoss_file.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import os
77
import logging
8+
import hashlib
89
import fosslight_util.constant as constant
910
from ._scan_item import SourceItem
1011
from ._scan_item import is_exclude_file
@@ -45,6 +46,7 @@ def parsing_scanResult(scanoss_report: dict, path_to_scan: str = "", path_to_exc
4546
if any(os.path.commonpath([abs_file_path, exclude_path]) == exclude_path for exclude_path in abs_path_to_exclude):
4647
continue
4748
result_item = SourceItem(file_path)
49+
result_item.checksum = str(hashlib.sha1(file_path.encode()).hexdigest())
4850
if 'id' in findings[0]:
4951
if "none" == findings[0]['id']:
5052
continue

src/fosslight_source/cli.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from fosslight_util.timer_thread import TimerThread
1414
from ._help import print_version, print_help_msg_source_scanner
1515
from ._license_matched import get_license_list_to_print
16-
from fosslight_util.output_format import check_output_formats, write_output_file
16+
from fosslight_util.output_format import check_output_formats_v2, write_output_file
1717
from fosslight_util.correct import correct_with_yaml
1818
from .run_scancode import run_scan
1919
from .run_scanoss import run_scanoss_py
@@ -49,7 +49,7 @@ def main() -> None:
4949
write_json_file = False
5050
output_file_name = ""
5151
print_matched_text = False
52-
formats = ""
52+
formats = []
5353
selected_scanner = ""
5454
correct_mode = True
5555

@@ -145,7 +145,8 @@ def create_report_file(
145145
selected_scanner: str, need_license: bool = False,
146146
output_path: str = "", output_files: list = [],
147147
output_extensions: list = [], correct_mode: bool = True,
148-
correct_filepath: str = "", path_to_scan: str = "", path_to_exclude: list = []
148+
correct_filepath: str = "", path_to_scan: str = "", path_to_exclude: list = [],
149+
formats: list = []
149150
) -> 'ScannerItem':
150151
"""
151152
Create report files for given scanned result.
@@ -219,10 +220,10 @@ def create_report_file(
219220

220221
combined_paths_and_files = [os.path.join(output_path, file) for file in output_files]
221222
results = []
222-
for combined_path_and_file, output_extension in zip(combined_paths_and_files, output_extensions):
223+
for combined_path_and_file, output_extension, output_format in zip(combined_paths_and_files, output_extensions, formats):
223224
# if need_license and output_extension == _json_ext and "scanoss_reference" in sheet_list:
224225
# del sheet_list["scanoss_reference"]
225-
results.append(write_output_file(combined_path_and_file, output_extension, scan_item, extended_header, ""))
226+
results.append(write_output_file(combined_path_and_file, output_extension, scan_item, extended_header, "", output_format))
226227
for success, msg, result_file in results:
227228
if success:
228229
logger.info(f"Output file: {result_file}")
@@ -295,8 +296,9 @@ def run_scanners(
295296
license_list = []
296297
spdx_downloads = {}
297298
result_log = {}
299+
scan_item = []
298300

299-
success, msg, output_path, output_files, output_extensions = check_output_formats(output_file_name, formats)
301+
success, msg, output_path, output_files, output_extensions, formats = check_output_formats_v2(output_file_name, formats)
300302

301303
logger, result_log = init_log(os.path.join(output_path, f"fosslight_log_src_{start_time}.txt"),
302304
True, logging.INFO, logging.DEBUG, PKG_NAME, path_to_scan, path_to_exclude)
@@ -319,7 +321,7 @@ def run_scanners(
319321
merged_result = merge_results(scancode_result, scanoss_result, spdx_downloads)
320322
scan_item = create_report_file(start_time, merged_result, license_list, scanoss_result, selected_scanner,
321323
print_matched_text, output_path, output_files, output_extensions, correct_mode,
322-
correct_filepath, path_to_scan, path_to_exclude)
324+
correct_filepath, path_to_scan, path_to_exclude, formats)
323325
else:
324326
print_help_msg_source_scanner()
325327
result_log[RESULT_KEY] = "Unsupported scanner"

src/fosslight_source/run_scancode.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from fosslight_util.set_log import init_log
1515
from ._parsing_scancode_file_item import parsing_file_item
1616
from ._parsing_scancode_file_item import get_error_from_header
17-
from fosslight_util.output_format import check_output_formats
17+
from fosslight_util.output_format import check_output_formats_v2
1818
from fosslight_binary.binary_analysis import check_binary
1919
from typing import Tuple
2020

@@ -46,7 +46,7 @@ def run_scan(
4646
if not correct_filepath:
4747
correct_filepath = path_to_scan
4848

49-
success, msg, output_path, output_files, output_extensions = check_output_formats(output_file_name, formats)
49+
success, msg, output_path, output_files, output_extensions, formats = check_output_formats_v2(output_file_name, formats)
5050
if success:
5151
if output_path == "": # if json output with _write_json_file not used, output_path won't be needed.
5252
output_path = os.getcwd()

src/fosslight_source/run_scanoss.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from datetime import datetime
1212
import fosslight_util.constant as constant
1313
from fosslight_util.set_log import init_log
14-
from fosslight_util.output_format import check_output_formats # , write_output_file
14+
from fosslight_util.output_format import check_output_formats_v2 # , write_output_file
1515
from ._parsing_scanoss_file import parsing_scanResult # scanoss
1616
from ._parsing_scanoss_file import parsing_extraInfo # scanoss
1717
import shutil
@@ -41,7 +41,7 @@ def run_scanoss_py(path_to_scan: str, output_file_name: str = "", format: str =
4141
:param write_json_file: if requested, keep the raw files.
4242
:return scanoss_file_list: list of ScanItem (scanned result by files).
4343
"""
44-
success, msg, output_path, output_files, output_extensions = check_output_formats(output_file_name, format)
44+
success, msg, output_path, output_files, output_extensions, formats = check_output_formats_v2(output_file_name, format)
4545

4646
if not called_by_cli:
4747
global logger

0 commit comments

Comments
 (0)