Check available languages

This commit is contained in:
Arthur Baars
2021-05-23 16:27:46 +02:00
parent 91700099ba
commit 4f51b8c47e
9 changed files with 60 additions and 8 deletions

View File

@@ -77,6 +77,10 @@ export interface CodeQL {
* Finalize a database using 'codeql database finalize'.
*/
finalizeDatabase(databasePath: string, threadsFlag: string): Promise<void>;
/**
* Run 'codeql resolve languages'.
*/
resolveLanguages(): Promise<ResolveLanguagesOutput>;
/**
* Run 'codeql resolve queries'.
*/
@@ -99,6 +103,10 @@ export interface CodeQL {
): Promise<string>;
}
export interface ResolveLanguagesOutput {
[language: string]: [string];
}
export interface ResolveQueriesOutput {
byLanguage: {
[language: string]: {
@@ -478,6 +486,7 @@ export function setCodeQL(partialCodeql: Partial<CodeQL>): CodeQL {
"extractScannedLanguage"
),
finalizeDatabase: resolveFunction(partialCodeql, "finalizeDatabase"),
resolveLanguages: resolveFunction(partialCodeql, "resolveLanguages"),
resolveQueries: resolveFunction(partialCodeql, "resolveQueries"),
databaseAnalyze: resolveFunction(partialCodeql, "databaseAnalyze"),
};
@@ -654,6 +663,19 @@ function getCodeQLForCmd(cmd: string): CodeQL {
errorMatchers
);
},
async resolveLanguages() {
const codeqlArgs = ["resolve", "languages", "--format=json"];
let output = "";
await new toolrunner.ToolRunner(cmd, codeqlArgs, {
listeners: {
stdout: (data: Buffer) => {
output += data.toString();
},
},
}).exec();
return JSON.parse(output);
},
async resolveQueries(
queries: string[],
extraSearchPath: string | undefined