Skip to content

Commit

Permalink
Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
bigdaz committed Jan 4, 2024
1 parent 813809e commit 59949a0
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions src/cache-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,16 @@ export class GradleStateCache {
const actionCacheDir = path.resolve(this.gradleUserHome, '.gradle-build-action')
fs.mkdirSync(actionCacheDir, {recursive: true})

this.copyInitScripts()

// Copy the default toolchain definitions to `~/.m2/toolchains.xml`
this.registerToolchains()
}

private copyInitScripts(): void {
// Copy init scripts from src/resources to Gradle UserHome
const initScriptsDir = path.resolve(this.gradleUserHome, 'init.d')
fs.mkdirSync(initScriptsDir, {recursive: true})
fs.mkdirSync(initScriptsDir, { recursive: true })
const initScriptFilenames = [
'gradle-build-action.build-result-capture.init.gradle',
'gradle-build-action.build-result-capture-service.plugin.groovy',
Expand All @@ -203,26 +210,24 @@ export class GradleStateCache {
const initScriptPath = path.resolve(initScriptsDir, initScriptFilename)
fs.writeFileSync(initScriptPath, initScriptContent)
}
}

// Copy the default toolchain definitions to `~/.m2/toolchains.xml`
const toolchainContent = this.readResourceFileAsString('toolchains.xml')
private registerToolchains(): void {
const preInstalledToolchains = this.readResourceFileAsString('toolchains.xml')
const m2dir = path.resolve(this.userHome, '.m2')
const toolchainXmlTarget = path.resolve(m2dir, 'toolchains.xml')
if (!fs.existsSync(toolchainXmlTarget)) {
// Write a new toolchains.xml file if it doesn't exist
fs.mkdirSync(m2dir, {recursive: true})
fs.writeFileSync(toolchainXmlTarget, toolchainContent)
fs.mkdirSync(m2dir, { recursive: true })
fs.writeFileSync(toolchainXmlTarget, preInstalledToolchains)

core.info(`Wrote default JDK locations to ${toolchainXmlTarget}`)
} else {
// Merge into an existing toolchains.xml file
const existingToolchainContent = fs.readFileSync(toolchainXmlTarget, 'utf8')
const appendedContent = toolchainContent.split("<toolchains>").pop()!
const appendedContent = preInstalledToolchains.split("<toolchains>").pop()!
const mergedContent = existingToolchainContent.replace('</toolchains>', appendedContent)

core.info(`Merged toolchains.xml`)
core.info(mergedContent)

fs.writeFileSync(toolchainXmlTarget, mergedContent)
core.info(`Merged default JDK locations into ${toolchainXmlTarget}`)
}
Expand Down

0 comments on commit 59949a0

Please sign in to comment.