Skip to content

Commit 105c986

Browse files
committed
Add support for Gradle Configuration Cache
1 parent 28dd397 commit 105c986

File tree

6 files changed

+32
-9
lines changed

6 files changed

+32
-9
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
group = "dev.arbjerg"
8-
version = "1.0.19"
8+
version = "1.1.0"
99

1010
repositories {
1111
mavenCentral()

example/gradle.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
kotlin.code.style=official
2+
org.gradle.parallel=true
3+
org.gradle.caching=true
4+
org.gradle.configuration-cache=true

gradle.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
kotlin.code.style=official
2+
org.gradle.parallel=true
3+
org.gradle.caching=true
4+
org.gradle.configuration-cache=true

src/main/kotlin/tasks/DownloadLavalinkTask.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ import org.gradle.api.DefaultTask
66
import org.gradle.api.Project
77
import org.gradle.api.artifacts.Configuration
88
import org.gradle.api.artifacts.Dependency
9+
import org.gradle.api.file.FileSystemOperations
910
import org.gradle.api.provider.Property
1011
import org.gradle.api.provider.Provider
1112
import org.gradle.api.tasks.Input
1213
import org.gradle.api.tasks.Internal
1314
import org.gradle.api.tasks.TaskAction
1415
import java.nio.file.Path
16+
import javax.inject.Inject
1517
import kotlin.io.path.div
1618

1719
internal val Project.lavalinkJar: Provider<Path>
@@ -23,6 +25,9 @@ abstract class DownloadLavalinkTask : DefaultTask() {
2325
@get:Internal
2426
internal abstract val dependencyProvider: Property<Dependency>
2527

28+
@get:Inject
29+
abstract val fs: FileSystemOperations
30+
2631
@Suppress("unused") // only exists for input snapshotting
2732
@get:Input
2833
val version: Provider<String>
@@ -33,10 +38,14 @@ abstract class DownloadLavalinkTask : DefaultTask() {
3338
outputs.dir(project.gradle.gradleUserHomeDir.toPath() / "lavalink-versions")
3439
}
3540

41+
private val configurations = project.configurations
42+
43+
private val lavalinkPath = project.gradle.gradleUserHomeDir.toPath() / "lavalink-versions"
44+
3645
@TaskAction
3746
fun download() {
3847
val dependency = dependencyProvider.get()
39-
val configuration = project.configurations.detachedConfiguration(dependency)
48+
val configuration = configurations.detachedConfiguration(dependency)
4049
.markResolvable()
4150

4251
val files = configuration.resolve()
@@ -46,9 +55,9 @@ abstract class DownloadLavalinkTask : DefaultTask() {
4655
&& "plain" !in it.name && "sources" !in it.name && "javadoc" !in it.name
4756
}
4857
logger.debug("Resolved lavalink binary to: {}", archive.name)
49-
val path = project.gradle.gradleUserHomeDir.toPath() / "lavalink-versions" / dependency.version!!
58+
val path = lavalinkPath / dependency.version!!
5059

51-
didWork = project.copy {
60+
didWork = fs.copy {
5261
from(archive)
5362
rename { "Lavalink.jar" }
5463
into(path)

src/main/kotlin/tasks/GeneratePluginPropertiesTask.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,18 @@ abstract class GeneratePluginPropertiesTask : DefaultTask() {
3131
outputs.dir(project.generatedPluginManifest)
3232
}
3333

34+
private val extension = project.extension
35+
private val generatedPluginManifest = project.generatedPluginManifest
36+
3437
@TaskAction
3538
fun generateTask() {
36-
val extension = project.extension
3739
val properties = Properties().apply {
3840
set("version", extension.version.get())
3941
set("name", extension.name.get())
4042
set("path", extension.path.get())
4143
}
4244

43-
val file = project.generatedPluginManifest.get().asFile.toPath() / "lavalink-plugins" / "${extension.name.get()}.properties"
45+
val file = generatedPluginManifest.get().asFile.toPath() / "lavalink-plugins" / "${extension.name.get()}.properties"
4446
file.parent.createDirectories()
4547
file.bufferedWriter(options = arrayOf(StandardOpenOption.CREATE)).use { writer ->
4648
properties.store(writer, null)

src/main/kotlin/tasks/RunLavalinkTask.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package dev.arbjerg.lavalink.gradle.tasks
33
import dev.arbjerg.lavalink.gradle.LavalinkGradlePlugin
44
import org.gradle.api.Project
55
import org.gradle.api.tasks.JavaExec
6+
import org.gradle.api.tasks.OutputDirectory
67
import org.gradle.api.tasks.TaskAction
78
import org.gradle.kotlin.dsl.assign
89
import org.gradle.kotlin.dsl.environment
@@ -17,15 +18,19 @@ abstract class RunLavalinkTask : JavaExec() {
1718
outputs.upToDateWhen { false }
1819
}
1920

21+
private val workingDir = project.rootDir
22+
private val testServerFolder = project.testServerFolder
23+
private val lavalinkJar = project.lavalinkJar.map { project.files(it) }
24+
2025
@TaskAction
2126
override fun exec() {
22-
workingDir(project.rootDir)
27+
workingDir(workingDir)
2328
configureClassPath()
24-
environment("lavalink.pluginsDir" to project.testServerFolder.get())
29+
environment("lavalink.pluginsDir" to testServerFolder.get())
2530
super.exec()
2631
}
2732

2833
private fun configureClassPath() {
29-
classpath += objectFactory.fileCollection().from(project.lavalinkJar.map { project.files(it) })
34+
classpath += objectFactory.fileCollection().from(lavalinkJar)
3035
}
3136
}

0 commit comments

Comments
 (0)