20
20
from fosslight_util .output_format import check_output_format , write_output_file
21
21
if platform .system () != 'Windows' :
22
22
from fosslight_util .write_spdx import write_spdx
23
+ from fosslight_util .cover import CoverItem
23
24
24
25
# Package Name
25
26
_PKG_NAME = "fosslight_dependency"
@@ -158,21 +159,40 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
158
159
finally :
159
160
if not ret :
160
161
logger .warning ("Dependency scanning terminated because the package manager was not found." )
161
- return False , sheet_list
162
+ ret = False
162
163
else :
163
164
found_package_manager [package_manager ] = ''
164
165
165
166
pass_key = 'PASS'
167
+ success_pm = []
168
+ fail_pm = []
166
169
for pm , manifest_file_name in found_package_manager .items ():
167
170
if manifest_file_name == pass_key :
168
171
continue
169
172
ret , package_sheet_list = analyze_dependency (pm , input_dir , output_path , pip_activate_cmd , pip_deactivate_cmd ,
170
173
output_custom_dir , app_name , github_token , manifest_file_name , direct )
171
174
if ret :
175
+ success_pm .append (f"{ pm } ({ ', ' .join (manifest_file_name )} )" )
172
176
sheet_list [_sheet_name ].extend (package_sheet_list )
173
177
if pm == const .GRADLE :
174
178
if const .ANDROID in found_package_manager .keys ():
175
179
found_package_manager [const .ANDROID ] = pass_key
180
+ else :
181
+ fail_pm .append (f"{ pm } ({ ', ' .join (manifest_file_name )} )" )
182
+ cover = CoverItem (tool_name = _PKG_NAME ,
183
+ start_time = _start_time ,
184
+ input_path = input_dir )
185
+ cover_comment_arr = []
186
+ if len (found_package_manager .keys ()) > 0 :
187
+ if len (success_pm ) > 0 :
188
+ cover_comment_arr .append (f"Analyzed Package manager: { ', ' .join (success_pm )} " )
189
+ if len (fail_pm ) > 0 :
190
+ info_msg = 'Check https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html#-prerequisite.'
191
+ cover_comment_arr .append (f"Analysis failed Package manager: { ', ' .join (fail_pm )} ({ info_msg } )" )
192
+ else :
193
+ cover_comment_arr .append ("No Package manager detected." )
194
+
195
+ cover .comment = ' / ' .join (cover_comment_arr )
176
196
177
197
output_file_without_ext = os .path .join (output_path , output_file )
178
198
if format .startswith ('spdx' ):
@@ -184,12 +204,14 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
184
204
logger .error ('Windows not support spdx format.' )
185
205
else :
186
206
success_write , err_msg , result_file = write_output_file (output_file_without_ext , output_extension ,
187
- sheet_list , EXTENDED_HEADER )
207
+ sheet_list , EXTENDED_HEADER , '' , cover )
188
208
if success_write :
189
209
if result_file :
190
- logger .info (f"Writing Output file( { result_file } ), success: { success_write } " )
210
+ logger .info (f"Output file: { result_file } " )
191
211
else :
192
212
logger .warning (f"{ err_msg } " )
213
+ for i in cover_comment_arr :
214
+ logger .info (i .strip ())
193
215
else :
194
216
ret = False
195
217
logger .error (f"Fail to generate result file. msg:({ err_msg } )" )
0 commit comments