@@ -41,14 +41,15 @@ def get_previous_sha(sha, date):
4141 return (parent_sha , parent_date )
4242
4343
44- def get_packages (lang , query , search_path ):
44+ def get_packages (config , search_path ):
4545 try :
46- db = "empty_" + lang
47- ql_output = "output-" + lang + ".csv"
46+ db = "empty_" + config . lang
47+ ql_output = "output-" + config . lang + ".csv"
4848 if os .path .isdir (db ):
4949 shutil .rmtree (db )
50- utils .create_empty_database (lang , ".java" , db )
51- utils .run_codeql_query (query , db , ql_output , search_path )
50+ utils .create_empty_database (
51+ config .lang , config .ext , db , config .dbscheme )
52+ utils .run_codeql_query (config .ql_path , db , ql_output , search_path )
5253
5354 return pack .PackageCollection (ql_output )
5455 except :
@@ -71,9 +72,9 @@ def get_packages(lang, query, search_path):
7172
7273configs = [
7374 utils .LanguageConfig (
74- "java" , "Java" , ".java" , "java/ql/src/meta/frameworks/Coverage.ql" ),
75+ "java" , "Java" , ".java" , "java/ql/src/meta/frameworks/Coverage.ql" , [ "java/ql/lib/config/semmlecode.dbscheme" , "java/ql/src/config/semmlecode.dbscheme" ] ),
7576 utils .LanguageConfig (
76- "csharp" , "C#" , ".cs" , "csharp/ql/src/meta/frameworks/Coverage.ql" )
77+ "csharp" , "C#" , ".cs" , "csharp/ql/src/meta/frameworks/Coverage.ql" , [ "csharp/ql/lib/semmlecode.csharp.dbscheme" , "csharp/ql/src/semmlecode.csharp.dbscheme" ] )
7778]
7879
7980output_prefix = "framework-coverage-timeseries-"
@@ -102,7 +103,8 @@ def get_packages(lang, query, search_path):
102103 "file_total" : file_total ,
103104 "file_packages" : file_packages ,
104105 "csvwriter_total" : csvwriter_total ,
105- "csvwriter_packages" : csvwriter_packages
106+ "csvwriter_packages" : csvwriter_packages ,
107+ "last_row" : (None , None , None )
106108 }
107109
108110try :
@@ -141,15 +143,20 @@ def get_packages(lang, query, search_path):
141143 frameworks : fr .FrameworkCollection = language_utils [lang ]["frameworks" ]
142144 csvwriter_total = language_utils [lang ]["csvwriter_total" ]
143145 csvwriter_packages = language_utils [lang ]["csvwriter_packages" ]
146+ last_row = language_utils [lang ]["last_row" ]
144147
145- packages = get_packages (lang , config . ql_path , "." )
148+ packages = get_packages (config , "." )
146149
147- csvwriter_total .writerow ([
148- current_sha ,
149- current_date ,
150- packages .get_part_count ("source" ),
151- packages .get_part_count ("sink" ),
152- packages .get_part_count ("summary" )])
150+ new_row = (packages .get_part_count ("source" ),
151+ packages .get_part_count ("sink" ),
152+ packages .get_part_count ("summary" ))
153+
154+ if last_row != new_row :
155+ csvwriter_total .writerow ([
156+ current_sha ,
157+ current_date ,
158+ new_row [0 ], new_row [1 ], new_row [2 ]])
159+ language_utils [lang ]["last_row" ] = new_row
153160
154161 matched_packages = set ()
155162
@@ -158,7 +165,7 @@ def get_packages(lang, query, search_path):
158165 framework : fr .Framework = framework
159166
160167 row = [current_sha , current_date ,
161- framework .name , framework .package_pattern ]
168+ framework .name , ", " . join ( sorted ( framework .package_pattern . split ( " " ))) ]
162169
163170 sources = 0
164171 sinks = 0
0 commit comments