@@ -11,12 +11,43 @@ const responseFile = process.argv[2];
1111const osPlatform = platform ( ) ;
1212const osPlatformArch = arch ( ) ;
1313console . 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+
1447const autobuildScriptName = osPlatform === 'win32' ? 'autobuild.cmd' : 'autobuild.sh' ;
1548const 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-
191204let excludeFilters = '' ;
192205/**
193206 * Check if LGTM_INDEX_FILTERS is already set. This tyically happens if either
0 commit comments