@@ -51,14 +51,14 @@ def paginate_file(file_path):
5151 input ("Press Enter to see the next page..." )
5252
5353
54- def find_package_manager (input_dir , abs_path_to_exclude = []):
54+ def find_package_manager (input_dir , abs_path_to_exclude = [], manifest_file_name = [] ):
5555 ret = True
56- manifest_file_name = []
57- for value in const .SUPPORT_PACKAE .values ():
58- if isinstance (value , list ):
59- manifest_file_name .extend (value )
60- else :
61- manifest_file_name .append (value )
56+ if not manifest_file_name :
57+ for value in const .SUPPORT_PACKAE .values ():
58+ if isinstance (value , list ):
59+ manifest_file_name .extend (value )
60+ else :
61+ manifest_file_name .append (value )
6262
6363 found_manifest_file = []
6464 for parent , dirs , files in os .walk (input_dir ):
@@ -106,7 +106,7 @@ def find_package_manager(input_dir, abs_path_to_exclude=[]):
106106 logger .warning (f"### Set Package Manager = { ', ' .join (found_package_manager .keys ())} " )
107107 else :
108108 ret = False
109- logger .info ("It cannot find the manifest file." )
109+ logger .info ("Cannot find the manifest file." )
110110
111111 return ret , found_package_manager , input_dir
112112
@@ -175,17 +175,6 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
175175 logger .error (msg )
176176 return False , scan_item
177177
178- autodetect = True
179- if package_manager :
180- autodetect = False
181- support_packagemanager = list (const .SUPPORT_PACKAE .keys ())
182-
183- if package_manager not in support_packagemanager :
184- logger .error (f"(-m option) You entered the unsupported package manager({ package_manager } )." )
185- logger .error ("Please enter the supported package manager({0}) with '-m' option."
186- .format (", " .join (support_packagemanager )))
187- return False , scan_item
188-
189178 if input_dir :
190179 if os .path .isdir (input_dir ):
191180 os .chdir (input_dir )
@@ -199,20 +188,44 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
199188 os .chdir (input_dir )
200189 scan_item .set_cover_pathinfo (input_dir , path_to_exclude )
201190
191+ autodetect = True
202192 found_package_manager = {}
203- if autodetect :
204- try :
205- ret , found_package_manager , input_dir = find_package_manager (input_dir , abs_path_to_exclude )
193+ if package_manager :
194+ autodetect = False
195+ support_packagemanager = list (const .SUPPORT_PACKAE .keys ())
196+
197+ if package_manager not in support_packagemanager :
198+ logger .error (f"(-m option) You entered the unsupported package manager({ package_manager } )." )
199+ logger .error ("Please enter the supported package manager({0}) with '-m' option."
200+ .format (", " .join (support_packagemanager )))
201+ return False , scan_item
202+ manifest_file_name = []
203+ value = const .SUPPORT_PACKAE [package_manager ]
204+ if isinstance (value , list ):
205+ manifest_file_name .extend (value )
206+ else :
207+ manifest_file_name .append (value )
208+ scan_item .set_cover_comment (f"Manual detect mode (-m { package_manager } )" )
209+ else :
210+ manifest_file_name = []
211+
212+ try :
213+ ret , found_package_manager , input_dir = find_package_manager (input_dir , abs_path_to_exclude , manifest_file_name )
214+ if ret :
206215 os .chdir (input_dir )
207- except Exception as e :
216+ except Exception as e :
217+ if autodetect :
208218 logger .error (f'Fail to find package manager: { e } ' )
209219 ret = False
210- finally :
211- if not ret :
212- logger .warning ("Dependency scanning terminated because the package manager was not found." )
220+ finally :
221+ if not ret :
222+ if not autodetect :
223+ logger .info ('Try to analyze dependency without manifest file. (Manual mode)' )
224+ found_package_manager [package_manager ] = []
225+ else :
226+ logger .error ("Terminated: package manager could not be found." )
213227 ret = False
214- else :
215- found_package_manager [package_manager ] = ["manual detect ('-m option')" ]
228+ return False , scan_item
216229
217230 pass_key = 'PASS'
218231 success_pm = []
@@ -249,7 +262,8 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
249262 'and https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html#-prerequisite.'
250263 scan_item .set_cover_comment (f"Analysis failed Package manager: { ', ' .join (fail_pm )} ({ info_msg } )" )
251264 else :
252- scan_item .set_cover_comment ("No Package manager detected." )
265+ if autodetect :
266+ scan_item .set_cover_comment ("No Package manager detected." )
253267
254268 if ret and graph_path :
255269 graph_path = os .path .abspath (graph_path )
0 commit comments