@@ -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,9 @@ 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 ,
220+ abs_path_to_exclude ,
221+ manifest_file_name )
217222 if ret :
218223 os .chdir (input_dir )
219224 except Exception as e :
@@ -226,9 +231,18 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
226231 logger .info ('Try to analyze dependency without manifest file. (Manual mode)' )
227232 found_package_manager [package_manager ] = []
228233 else :
229- logger .error ("Terminated: package manager could not be found." )
230234 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." )
232246
233247 pass_key = 'PASS'
234248 success_pm = []
@@ -264,9 +278,6 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
264278 info_msg = 'Check log file(fosslight_log*.txt) ' \
265279 'and https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html#-prerequisite.'
266280 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." )
270281
271282 if ret and graph_path :
272283 graph_path = os .path .abspath (graph_path )
@@ -300,12 +311,14 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
300311 else :
301312 logger .warning (f"{ err_msg } " )
302313 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 )
304318 else :
305319 ret = False
306320 logger .error (f"Fail to generate result file. msg:({ err_msg } )" )
307321
308- logger .warning ("### FINISH ###" )
309322 return ret , scan_item
310323
311324
0 commit comments