Honor the Lua tracer FF for database trace-command invocations for scanned languages.

In theory, a scanned language will not setup the build tracer, and so
shouldn't care about lua versus legacy tracing. However, `go` is a
special case where the autobuilder runs under the build tracer, that
then gets disabled immediately again, unless a special environment
variable is used.
Therefore, we need to thread through the feature flag to this
`database trace-command` invocation. For other scanned languages,
this should be a no-op, as no tracing is ever set up.
This commit is contained in:
Cornelius Riemenschneider 2022-06-24 10:26:12 +00:00 committed by GitHub
parent 47bcabd3e8
commit f422a50448
12 changed files with 85 additions and 23 deletions

12
lib/codeql.js generated
View file

@ -510,7 +510,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
].join(" ");
await runTool(autobuildCmd);
},
async extractScannedLanguage(databasePath, language) {
async extractScannedLanguage(databasePath, language, featureFlags) {
// Get extractor location
let extractorPath = "";
await new toolrunner.ToolRunner(cmd, [
@ -533,10 +533,20 @@ async function getCodeQLForCmd(cmd, checkVersion) {
// Set trace command
const ext = process.platform === "win32" ? ".cmd" : ".sh";
const traceCommand = path.resolve(JSON.parse(extractorPath), "tools", `autobuild${ext}`);
const extraArgs = [];
if (await util.codeQlVersionAbove(this, CODEQL_VERSION_LUA_TRACER_CONFIG)) {
if (await featureFlags.getValue(feature_flags_1.FeatureFlag.LuaTracerConfigEnabled)) {
extraArgs.push("--internal-use-lua-tracing");
}
else {
extraArgs.push("--no-internal-use-lua-tracing");
}
}
// Run trace command
await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)(cmd, [
"database",
"trace-command",
...extraArgs,
...getExtraOptionsFromEnv(["database", "trace-command"]),
databasePath,
"--",