@@ -41,14 +41,15 @@ def get_previous_sha(sha, date):
41
41
return (parent_sha , parent_date )
42
42
43
43
44
- def get_packages (lang , query , search_path ):
44
+ def get_packages (config , search_path ):
45
45
try :
46
- db = "empty_" + lang
47
- ql_output = "output-" + lang + ".csv"
46
+ db = "empty_" + config . lang
47
+ ql_output = "output-" + config . lang + ".csv"
48
48
if os .path .isdir (db ):
49
49
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 )
52
53
53
54
return pack .PackageCollection (ql_output )
54
55
except :
@@ -71,9 +72,9 @@ def get_packages(lang, query, search_path):
71
72
72
73
configs = [
73
74
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" ] ),
75
76
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" ] )
77
78
]
78
79
79
80
output_prefix = "framework-coverage-timeseries-"
@@ -102,7 +103,8 @@ def get_packages(lang, query, search_path):
102
103
"file_total" : file_total ,
103
104
"file_packages" : file_packages ,
104
105
"csvwriter_total" : csvwriter_total ,
105
- "csvwriter_packages" : csvwriter_packages
106
+ "csvwriter_packages" : csvwriter_packages ,
107
+ "last_row" : (None , None , None )
106
108
}
107
109
108
110
try :
@@ -141,15 +143,20 @@ def get_packages(lang, query, search_path):
141
143
frameworks : fr .FrameworkCollection = language_utils [lang ]["frameworks" ]
142
144
csvwriter_total = language_utils [lang ]["csvwriter_total" ]
143
145
csvwriter_packages = language_utils [lang ]["csvwriter_packages" ]
146
+ last_row = language_utils [lang ]["last_row" ]
144
147
145
- packages = get_packages (lang , config . ql_path , "." )
148
+ packages = get_packages (config , "." )
146
149
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
153
160
154
161
matched_packages = set ()
155
162
@@ -158,7 +165,7 @@ def get_packages(lang, query, search_path):
158
165
framework : fr .Framework = framework
159
166
160
167
row = [current_sha , current_date ,
161
- framework .name , framework .package_pattern ]
168
+ framework .name , ", " . join ( sorted ( framework .package_pattern . split ( " " ))) ]
162
169
163
170
sources = 0
164
171
sinks = 0
0 commit comments