Skip to content

Commit d02234e

Browse files
committed
Fix CDS extractor JS undefined var
1 parent aed1fc6 commit d02234e

File tree

1 file changed

+35
-22
lines changed

1 file changed

+35
-22
lines changed

extractors/cds/tools/index-files.js

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,43 @@ const responseFile = process.argv[2];
1111
const osPlatform = platform();
1212
const osPlatformArch = arch();
1313
console.log(`Detected OS platform=${osPlatform} : arch=${osPlatformArch}`);
14+
const codeqlExe = osPlatform === 'win32' ? 'codeql.exe' : 'codeql';
15+
const codeqlExePath = join(quote([process.env.CODEQL_DIST]), codeqlExe);
16+
17+
let CODEQL_EXTRACTOR_JAVASCRIPT_ROOT = process.env.CODEQL_EXTRACTOR_JAVASCRIPT_ROOT
18+
? quote([process.env.CODEQL_EXTRACTOR_JAVASCRIPT_ROOT])
19+
: undefined;
20+
// Check if the (JavaScript) JS extractor variables are set, and set them if not.
21+
if (!CODEQL_EXTRACTOR_JAVASCRIPT_ROOT) {
22+
// Find the JS extractor location.
23+
CODEQL_EXTRACTOR_JAVASCRIPT_ROOT = execFileSync(
24+
codeqlExePath,
25+
['resolve', 'extractor', '--language=javascript']
26+
).toString().trim();
27+
// Terminate early if the CODEQL_EXTRACTOR_JAVASCRIPT_ROOT environment
28+
// variable was not already set and could not be resolved via CLI.
29+
if (!CODEQL_EXTRACTOR_JAVASCRIPT_ROOT) {
30+
console.warn(
31+
`'${codeqlExe} database index-files --language cds' terminated early as CODEQL_EXTRACTOR_JAVASCRIPT_ROOT environment variable is not set.`
32+
);
33+
process.exit(0);
34+
}
35+
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_ROOT = CODEQL_EXTRACTOR_JAVASCRIPT_ROOT;
36+
// Set the JAVASCRIPT extractor environment variables to the same as the CDS
37+
// extractor environment variables so that the JS extractor will write to the
38+
// CDS database.
39+
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_WIP_DATABASE = process.env.CODEQL_EXTRACTOR_CDS_WIP_DATABASE;
40+
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_DIAGNOSTIC_DIR = process.env.CODEQL_EXTRACTOR_CDS_DIAGNOSTIC_DIR;
41+
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_LOG_DIR = process.env.CODEQL_EXTRACTOR_CDS_LOG_DIR;
42+
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_SCRATCH_DIR = process.env.CODEQL_EXTRACTOR_CDS_SCRATCH_DIR;
43+
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_TRAP_DIR = process.env.CODEQL_EXTRACTOR_CDS_TRAP_DIR;
44+
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_SOURCE_ARCHIVE_DIR = process.env.CODEQL_EXTRACTOR_CDS_SOURCE_ARCHIVE_DIR;
45+
}
46+
1447
const autobuildScriptName = osPlatform === 'win32' ? 'autobuild.cmd' : 'autobuild.sh';
1548
const autobuildScriptPath = join(
16-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_ROOT, 'tools', autobuildScriptName
49+
CODEQL_EXTRACTOR_JAVASCRIPT_ROOT, 'tools', autobuildScriptName
1750
);
18-
const codeqlExe = osPlatform === 'win32' ? 'codeql.exe' : 'codeql';
19-
const codeqlExePath = join(quote([process.env.CODEQL_DIST]), codeqlExe);
2051

2152
/**
2253
* Terminate early if:
@@ -108,7 +139,7 @@ try {
108139
});
109140

110141
// TODO : revise this check as the equality is probably not guaranteed.
111-
if (responseFiles.length !== packageJsonDirs.length) {
142+
if (responseFiles.length !== packageJsonDirs.size) {
112143
console.warn(
113144
`WARN: mismatch between number of response files (${responseFiles.length}) and package.json directories (${packageJsonDirs.length})`
114145
);
@@ -170,24 +201,6 @@ responseFiles.forEach(rawCdsFilePath => {
170201
}
171202
});
172203

173-
// Check if the (JavaScript) JS extractor variables are set, and set them if not.
174-
if (!process.env.CODEQL_EXTRACTOR_JAVASCRIPT_ROOT) {
175-
// Find the JS extractor location.
176-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_ROOT = execFileSync(
177-
codeqlExePath,
178-
['resolve', 'extractor', '--language=javascript']
179-
).toString().trim();
180-
// Set the JAVASCRIPT extractor environment variables to the same as the CDS
181-
// extractor environment variables so that the JS extractor will write to the
182-
// CDS database.
183-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_WIP_DATABASE = process.env.CODEQL_EXTRACTOR_CDS_WIP_DATABASE;
184-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_DIAGNOSTIC_DIR = process.env.CODEQL_EXTRACTOR_CDS_DIAGNOSTIC_DIR;
185-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_LOG_DIR = process.env.CODEQL_EXTRACTOR_CDS_LOG_DIR;
186-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_SCRATCH_DIR = process.env.CODEQL_EXTRACTOR_CDS_SCRATCH_DIR;
187-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_TRAP_DIR = process.env.CODEQL_EXTRACTOR_CDS_TRAP_DIR;
188-
process.env.CODEQL_EXTRACTOR_JAVASCRIPT_SOURCE_ARCHIVE_DIR = process.env.CODEQL_EXTRACTOR_CDS_SOURCE_ARCHIVE_DIR;
189-
}
190-
191204
let excludeFilters = '';
192205
/**
193206
* Check if LGTM_INDEX_FILTERS is already set. This tyically happens if either

0 commit comments

Comments
 (0)