Make use of multi-language and indirect tracing

This commit is contained in:
Edoardo Pirovano 2021-09-15 14:49:20 +01:00
parent e40e887968
commit 1f4460b9fb
No known key found for this signature in database
GPG key ID: 047556B5D93FFE28
22 changed files with 275 additions and 81 deletions

16
lib/init.js generated
View file

@ -29,6 +29,7 @@ const codeql_1 = require("./codeql");
const configUtils = __importStar(require("./config-utils"));
const tracer_config_1 = require("./tracer-config");
const util = __importStar(require("./util"));
const util_1 = require("./util");
async function initCodeQL(codeqlURL, apiDetails, tempDir, toolCacheDir, variant, logger) {
logger.startGroup("Setup CodeQL tools");
const { codeql, toolsVersion } = await (0, codeql_1.setupCodeQL)(codeqlURL, apiDetails, tempDir, toolCacheDir, variant, logger, true);
@ -45,12 +46,17 @@ async function initConfig(languagesInput, queriesInput, packsInput, configFile,
return config;
}
exports.initConfig = initConfig;
async function runInit(codeql, config, sourceRoot) {
async function runInit(codeql, config, sourceRoot, processName, processLevel) {
fs.mkdirSync(config.dbLocation, { recursive: true });
// TODO: replace this code once CodeQL supports multi-language tracing
for (const language of config.languages) {
// Init language database
await codeql.databaseInit(util.getCodeQLDatabasePath(config, language), language, sourceRoot);
if (await (0, util_1.codeQlVersionAbove)(codeql, codeql_1.CODEQL_VERSION_NEW_TRACING)) {
// Init a database cluster
await codeql.databaseInitCluster(config.dbLocation, config.languages, sourceRoot, processName, processLevel);
}
else {
for (const language of config.languages) {
// Init language database
await codeql.databaseInit(util.getCodeQLDatabasePath(config, language), language, sourceRoot);
}
}
return await (0, tracer_config_1.getCombinedTracerConfig)(config, codeql);
}