11import os
2+ import sys
23import json
34import re
45from collections import Counter , defaultdict
56
6- from SecurityKeywordsBasedSearchTool . SecFeatFinder . Feature import Feature
7- from SecurityKeywordsBasedSearchTool . SecFeatFinder . FeatureModel import add_to_fm , create_feature_model_file , \
7+ from Feature import Feature
8+ from FeatureModel import add_to_fm , create_feature_model_file , \
89 read_feature_model
9- from SecurityKeywordsBasedSearchTool . SecFeatFinder . GitClient import clone_repository
10+ from GitClient import clone_repository
1011
1112
1213def flatten_keywords (keyword_dict ):
@@ -29,7 +30,8 @@ def process_feature_annotations(features_file, repo_dir, flattened_keywords, tax
2930 with open (features_file , "r" ) as file :
3031 data = json .load (file )
3132 else :
32- data = {}
33+ print (f"Features file not found at { os .path .abspath (features_file )} ." )
34+ sys .exit (1 )
3335
3436 library_features = set ()
3537
@@ -298,19 +300,26 @@ def print_top_keywords(keyword_counter, total_matches):
298300
299301def main ():
300302 repo_url = input ("Enter the repository URL: " )
301- keyword_file = "SecList .json"
302- features_file = "features.json"
303- taxonomy_file = "taxonomy.feature_model"
303+ keyword_file = "SecFeatFinder/git@github.com:apache/tomcat.gitSecList .json"
304+ features_file = "../Resources/ features.json"
305+ taxonomy_file = "../Resources/ taxonomy.feature_model"
304306
305307 taxonomy = read_feature_model (taxonomy_file )
308+ if taxonomy is None :
309+ print ("Could not load taxonomy" )
310+ sys .exit (0 )
306311
307312 # Clone the repository
308313 project_dir , repo_name = clone_repository (repo_url )
309314
310315 # Load keywords
311- with open (keyword_file , "r" ) as file :
312- keyword_dict = json .load (file )
313- flattened_keywords = flatten_keywords (keyword_dict )
316+ if os .path .exists (keyword_file ):
317+ with open (keyword_file , "r" ) as file :
318+ keyword_dict = json .load (file )
319+ flattened_keywords = flatten_keywords (keyword_dict )
320+ else :
321+ print (f"Keywords file not found at { os .path .abspath (keyword_file )} ." )
322+ sys .exit (1 )
314323
315324 # int fm
316325 fm = Feature (taxonomy .name , None )
0 commit comments