@@ -61,6 +61,7 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
61
61
manifest_file_name .append (value )
62
62
63
63
found_manifest_file = []
64
+ suggested_files = []
64
65
for parent , dirs , files in os .walk (input_dir ):
65
66
if len (files ) < 1 :
66
67
continue
@@ -76,6 +77,8 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
76
77
continue
77
78
if file in manifest_file_name :
78
79
found_manifest_file .append (file )
80
+ if file in const .SUGGESTED_PACKAGE .keys ():
81
+ suggested_files .append (os .path .join (parent , file ))
79
82
for dir in dirs :
80
83
for manifest_f in manifest_file_name :
81
84
manifest_l = manifest_f .split (os .path .sep )
@@ -111,7 +114,7 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
111
114
ret = False
112
115
logger .info ("Cannot find the manifest file." )
113
116
114
- return ret , found_package_manager , input_dir
117
+ return ret , found_package_manager , input_dir , suggested_files
115
118
116
119
117
120
def run_dependency_scanner (package_manager = '' , input_dir = '' , output_dir_file = '' , pip_activate_cmd = '' ,
@@ -213,7 +216,9 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
213
216
manifest_file_name = []
214
217
215
218
try :
216
- ret , found_package_manager , input_dir = find_package_manager (input_dir , abs_path_to_exclude , manifest_file_name )
219
+ ret , found_package_manager , input_dir , suggested_files = find_package_manager (input_dir ,
220
+ abs_path_to_exclude ,
221
+ manifest_file_name )
217
222
if ret :
218
223
os .chdir (input_dir )
219
224
except Exception as e :
@@ -226,9 +231,18 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
226
231
logger .info ('Try to analyze dependency without manifest file. (Manual mode)' )
227
232
found_package_manager [package_manager ] = []
228
233
else :
229
- logger .error ("Terminated: package manager could not be found." )
230
234
ret = False
231
- return False , scan_item
235
+ if suggested_files :
236
+ suggested_files_str = []
237
+ suggested_files_str .append ("Please check the following files and try again:" )
238
+ for f in suggested_files :
239
+ pm = const .SUGGESTED_PACKAGE [f .split (os .path .sep )[- 1 ]]
240
+ suggested_files_str .append (f"\t \t \t { f } ({ pm } ) detected, but { const .SUPPORT_PACKAE [pm ]} missing." )
241
+
242
+ suggested_files_str .append ("\t \t \t Refer: https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html." )
243
+ scan_item .set_cover_comment ('\n ' .join (suggested_files_str ))
244
+ else :
245
+ scan_item .set_cover_comment ("No Package manager detected." )
232
246
233
247
pass_key = 'PASS'
234
248
success_pm = []
@@ -264,9 +278,6 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
264
278
info_msg = 'Check log file(fosslight_log*.txt) ' \
265
279
'and https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html#-prerequisite.'
266
280
scan_item .set_cover_comment (f"Analysis failed Package manager: { ', ' .join (fail_pm )} ({ info_msg } )" )
267
- else :
268
- if autodetect :
269
- scan_item .set_cover_comment ("No Package manager detected." )
270
281
271
282
if ret and graph_path :
272
283
graph_path = os .path .abspath (graph_path )
@@ -300,12 +311,14 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
300
311
else :
301
312
logger .warning (f"{ err_msg } " )
302
313
for i in scan_item .get_cover_comment ():
303
- logger .info (i )
314
+ if ret :
315
+ logger .info (i )
316
+ else :
317
+ logger .warning (i )
304
318
else :
305
319
ret = False
306
320
logger .error (f"Fail to generate result file. msg:({ err_msg } )" )
307
321
308
- logger .warning ("### FINISH ###" )
309
322
return ret , scan_item
310
323
311
324
0 commit comments