export async function downloadAndUnpackJbr()

in vscode/qodana/src/core/jdk/jbrDownloader.ts [113:135]


export async function downloadAndUnpackJbr(dir: string): Promise<string | undefined> {
    let release = await getMatchingReleaseUrl();
    if (!release) {
        return undefined;
    }
    let fetchedRelease = await fetchJbr(release!.fileUrl, `${dir}/jbr.tar.gz`);
    if (!fetchedRelease) {
        return undefined;
    }
    let pathToExtract = `${dir}/jbr`;
    await fs.promises.mkdir(pathToExtract);
    let extractedPath = await extractJbr(fetchedRelease, release.fileName, pathToExtract);
    await fs.promises.unlink(fetchedRelease);
    if (extractedPath) {
        try {
            await fs.promises.access(extractedPath);
            return extractedPath;
        } catch (e) {
            vscode.window.showErrorMessage(failedToDownloadJbr(extractedPath) + `: ${e}`);
            telemetry.errorReceived('#downloadAndUnpack exception');
        }
    }
}