Skip to content

Commit

Permalink
Relax requirement of mandrel versions starting with mandrel-
Browse files Browse the repository at this point in the history
Since we can now define the distribution there is no longer the need to
include the mandrel- prefix in Mandrel versions.
  • Loading branch information
zakkak committed Oct 30, 2023
1 parent bbbd2bd commit 76a9dc1
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
8 changes: 1 addition & 7 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,7 @@ async function run(): Promise<void> {
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) {
Expand Down
26 changes: 16 additions & 10 deletions src/mandrel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<string> {
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
}

Expand All @@ -33,8 +29,7 @@ export async function setUpMandrel(
async function setUpMandrelLatest(javaVersion: string): Promise<string> {
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(
Expand Down Expand Up @@ -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
}
}

0 comments on commit 76a9dc1

Please sign in to comment.