99import xml .etree .ElementTree as ET
1010import logging
1111import fosslight_util .constant as constant
12- from fosslight_util .output_format import check_output_format
1312from pathlib import Path
13+ from reuse .project import Project
14+ from fosslight_reuse ._result_html import result_for_html
15+ from fosslight_util .output_format import check_output_format
16+
1417
1518CUSTOMIZED_FORMAT_FOR_REUSE = {'html' : '.html' , 'xml' : '.xml' , 'yaml' : '.yaml' }
1619RULE_LINK = "https://oss.lge.com/guide/process/osc_process/1-identification/copyright_license_rule.html"
@@ -27,6 +30,7 @@ def __init__(self):
2730 self ._oss_pkg_files = []
2831 self ._detected_licenses = []
2932 self ._count_total_files = ""
33+ self ._count_without_both = ""
3034 self ._count_without_lic = ""
3135 self ._count_without_cop = ""
3236 self ._files_without_both = []
@@ -49,7 +53,7 @@ def compliant_result(self, value):
4953 if value :
5054 self ._compliant_result = "OK"
5155 else :
52- self ._compliant_result = "Not OK"
56+ self ._compliant_result = "Not- OK"
5357
5458 @property
5559 def oss_pkg_files (self ):
@@ -59,7 +63,7 @@ def get_print_yaml(self):
5963 result_item = {}
6064 result_item ["Compliant" ] = self ._compliant_result
6165 result_summary_item = {}
62- result_summary_item ["Open Source Package File" ] = self ._oss_pkg_files
66+ result_summary_item ["Open Source Package File" ] = is_list_empty ( self ._oss_pkg_files )
6367 result_summary_item ["Detected Licenses" ] = is_list_empty (self ._detected_licenses )
6468 result_summary_item ["Files without license / total" ] = f"{ self ._count_without_lic } / { self ._count_total_files } "
6569 result_summary_item ["Files without copyright / total" ] = f"{ self ._count_without_cop } / { self ._count_total_files } "
@@ -133,7 +137,7 @@ def result_for_xml(result_item: ResultItem):
133137 return _root_xml_item
134138
135139
136- def write_result_xml (result_file : str , exit_code : int , result_item : ResultItem , _result_log : str ) -> None :
140+ def write_result_xml (result_file : str , exit_code : int , result_item : ResultItem , _result_log : str ):
137141 success = False
138142 # Create a new XML file with the results
139143 try :
@@ -148,19 +152,22 @@ def write_result_xml(result_file: str, exit_code: int, result_item: ResultItem,
148152 return success , exit_code
149153
150154
151- def write_result_html (result_file : str , exit_code : int , _result_log : str ) -> None :
155+ def write_result_html (result_file : str , exit_code : int , result_item : ResultItem , project : Project , path_to_find ) :
152156 success = False
153157 try :
154158 output_dir = os .path .dirname (result_file )
155159 Path (output_dir ).mkdir (parents = True , exist_ok = True )
160+ html_result = result_for_html (result_item , project , path_to_find )
161+ with open (result_file , 'w' ) as f :
162+ f .write (html_result )
156163 success = True
157164 except Exception as ex :
158165 logger .error (f"Error_to_write_html: { ex } " )
159166 exit_code = os .EX_IOERR
160167 return success , exit_code
161168
162169
163- def write_result_yaml (result_file : str , exit_code : int , result_item : ResultItem ) -> None :
170+ def write_result_yaml (result_file : str , exit_code : int , result_item : ResultItem ):
164171 success = False
165172 try :
166173 output_dir = os .path .dirname (result_file )
@@ -206,7 +213,7 @@ def create_result_file(output_file_name, format='', _start_time=""):
206213
207214
208215def result_for_summary (oss_pkg_info_files , license_missing_files , copyright_missing_files ,
209- report , _result_log , _check_only_file_mode , file_to_check_list , error_items ,
216+ prj_report , _result_log , _check_only_file_mode , file_to_check_list , error_items ,
210217 excluded_files , lic_present_files_in_yaml , cop_present_files_in_yaml ):
211218 reuse_compliant = False
212219 detected_lic = []
@@ -216,9 +223,9 @@ def result_for_summary(oss_pkg_info_files, license_missing_files, copyright_miss
216223 if _check_only_file_mode :
217224 file_total = len (file_to_check_list )
218225 else :
219- file_total = len (report .file_reports )
226+ file_total = len (prj_report .file_reports )
220227 # Get detected License
221- for i , lic in enumerate (sorted (report .used_licenses )):
228+ for i , lic in enumerate (sorted (prj_report .used_licenses )):
222229 detected_lic .append (lic )
223230
224231 # Subtract license or copyright presenting file and excluded file
@@ -245,6 +252,7 @@ def result_for_summary(oss_pkg_info_files, license_missing_files, copyright_miss
245252 result_item ._oss_pkg_files = oss_pkg_info_files
246253 result_item ._detected_licenses = detected_lic
247254 result_item ._count_total_files = file_total
255+ result_item ._count_without_both = str (len (missing_both_files ))
248256 result_item ._count_without_lic = str (len (license_missing_files ) + len (missing_both_files ))
249257 result_item ._count_without_cop = str (len (copyright_missing_files ) + len (missing_both_files ))
250258 result_item ._files_without_both = sorted (missing_both_files )
@@ -259,12 +267,12 @@ def result_for_summary(oss_pkg_info_files, license_missing_files, copyright_miss
259267 return result_item
260268
261269
262- def write_result_file (result_file , output_extension , exit_code , result_item , _result_log ):
270+ def write_result_file (result_file , output_extension , exit_code , result_item , _result_log , project , path_to_find ):
263271 success = False
264272 if output_extension == ".yaml" or output_extension == "" :
265273 success , exit_code = write_result_yaml (result_file , exit_code , result_item )
266274 elif output_extension == ".html" :
267- success , exit_code = write_result_html (result_file , exit_code , _result_log )
275+ success , exit_code = write_result_html (result_file , exit_code , result_item , project , path_to_find )
268276 elif output_extension == ".xml" :
269277 success , exit_code = write_result_xml (result_file , exit_code , result_item , _result_log )
270278 else :
@@ -273,6 +281,6 @@ def write_result_file(result_file, output_extension, exit_code, result_item, _re
273281 if success :
274282 # Print yaml result
275283 yaml_result = result_item .get_print_yaml ()
276- str_yaml_result = yaml .safe_dump (yaml_result , allow_unicode = True , sort_keys = True )
284+ str_yaml_result = yaml .safe_dump (yaml_result , allow_unicode = True , sort_keys = False )
277285 logger .info (str_yaml_result )
278286 return success , exit_code
0 commit comments