From 76a9dc1455fb5a3d20fc5d5116ea5efe00506a7d Mon Sep 17 00:00:00 2001 From: Foivos Zakkak Date: Mon, 30 Oct 2023 17:24:23 +0200 Subject: [PATCH] Relax requirement of mandrel versions starting with mandrel- Since we can now define the distribution there is no longer the need to include the mandrel- prefix in Mandrel versions. --- src/main.ts | 8 +------- src/mandrel.ts | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main.ts b/src/main.ts index f6cd7b5..b89e468 100644 --- a/src/main.ts +++ b/src/main.ts @@ -58,13 +58,7 @@ async function run(): Promise { graalVMHome = await graalvm.setUpGraalVMJDKCE(javaVersion) break case c.DISTRIBUTION_MANDREL: - if (graalVMVersion.startsWith(c.MANDREL_NAMESPACE)) { - graalVMHome = await setUpMandrel(graalVMVersion, javaVersion) - } else { - throw new Error( - `Mandrel requires the 'version' option (see https://github.com/graalvm/setup-graalvm/tree/main#options).` - ) - } + graalVMHome = await setUpMandrel(graalVMVersion, javaVersion) break case '': if (javaVersion === c.VERSION_DEV) { diff --git a/src/mandrel.ts b/src/mandrel.ts index 35b7f3d..4b327a4 100644 --- a/src/mandrel.ts +++ b/src/mandrel.ts @@ -9,21 +9,17 @@ const MANDREL_DL_BASE = 'https://github.com/graalvm/mandrel/releases/download' const DISCO_API_BASE = 'https://api.foojay.io/disco/v3.0/packages/jdks' export async function setUpMandrel( - graalvmVersion: string, + mandrelVersion: string, javaVersion: string ): Promise { - const mandrelVersion = graalvmVersion.substring( - c.MANDREL_NAMESPACE.length, - graalvmVersion.length - ) - + const version = stripMandrelNamespace(mandrelVersion) let mandrelHome - switch (mandrelVersion) { + switch (version) { case 'latest': mandrelHome = await setUpMandrelLatest(javaVersion) break default: - mandrelHome = await setUpMandrelRelease(mandrelVersion, javaVersion) + mandrelHome = await setUpMandrelRelease(version, javaVersion) break } @@ -33,8 +29,7 @@ export async function setUpMandrel( async function setUpMandrelLatest(javaVersion: string): Promise { const latest_release_url = await getLatestMandrelReleaseUrl(javaVersion) const version_tag = getTagFromURI(latest_release_url); - const version = version_tag.substring(c.MANDREL_NAMESPACE.length, version_tag.length) - console.log(version); + const version = stripMandrelNamespace(version_tag) const toolName = determineToolName(javaVersion) return downloadExtractAndCacheJDK( @@ -127,3 +122,14 @@ function determineMandrelIdentifier( function determineToolName(javaVersion: string): string { return `mandrel-java${javaVersion}-${c.GRAALVM_PLATFORM}` } + +export function stripMandrelNamespace(graalVMVersion: string) { + if (graalVMVersion.startsWith(c.MANDREL_NAMESPACE)) { + return graalVMVersion.substring( + c.MANDREL_NAMESPACE.length, + graalVMVersion.length + ) + } else { + return graalVMVersion + } +}