@@ -61,6 +61,7 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
6161 manifest_file_name .append (value )
6262
6363 found_manifest_file = []
64+ suggested_files = []
6465 for parent , dirs , files in os .walk (input_dir ):
6566 if len (files ) < 1 :
6667 continue
@@ -76,6 +77,8 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
7677 continue
7778 if file in manifest_file_name :
7879 found_manifest_file .append (file )
80+ if file in const .SUGGESTED_PACKAGE .keys ():
81+ suggested_files .append (os .path .join (parent , file ))
7982 for dir in dirs :
8083 for manifest_f in manifest_file_name :
8184 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=[
111114 ret = False
112115 logger .info ("Cannot find the manifest file." )
113116
114- return ret , found_package_manager , input_dir
117+ return ret , found_package_manager , input_dir , suggested_files
115118
116119
117120def run_dependency_scanner (package_manager = '' , input_dir = '' , output_dir_file = '' , pip_activate_cmd = '' ,
@@ -213,7 +216,7 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
213216 manifest_file_name = []
214217
215218 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 , abs_path_to_exclude , manifest_file_name )
217220 if ret :
218221 os .chdir (input_dir )
219222 except Exception as e :
@@ -226,9 +229,18 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
226229 logger .info ('Try to analyze dependency without manifest file. (Manual mode)' )
227230 found_package_manager [package_manager ] = []
228231 else :
229- logger .error ("Terminated: package manager could not be found." )
230232 ret = False
231- return False , scan_item
233+ if suggested_files :
234+ suggested_files_str = []
235+ suggested_files_str .append ("Please check the following files and try again:" )
236+ for f in suggested_files :
237+ pm = const .SUGGESTED_PACKAGE [f .split (os .path .sep )[- 1 ]]
238+ suggested_files_str .append (f"\t \t \t { f } ({ pm } ) detected, but { const .SUPPORT_PACKAE [pm ]} missing." )
239+
240+ suggested_files_str .append ("\t \t \t Refer: https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html." )
241+ scan_item .set_cover_comment ('\n ' .join (suggested_files_str ))
242+ else :
243+ scan_item .set_cover_comment ("No Package manager detected." )
232244
233245 pass_key = 'PASS'
234246 success_pm = []
@@ -264,9 +276,6 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
264276 info_msg = 'Check log file(fosslight_log*.txt) ' \
265277 'and https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html#-prerequisite.'
266278 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." )
270279
271280 if ret and graph_path :
272281 graph_path = os .path .abspath (graph_path )
@@ -300,12 +309,14 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
300309 else :
301310 logger .warning (f"{ err_msg } " )
302311 for i in scan_item .get_cover_comment ():
303- logger .info (i )
312+ if ret :
313+ logger .info (i )
314+ else :
315+ logger .warning (i )
304316 else :
305317 ret = False
306318 logger .error (f"Fail to generate result file. msg:({ err_msg } )" )
307319
308- logger .warning ("### FINISH ###" )
309320 return ret , scan_item
310321
311322
0 commit comments