Merge pull request #2042 from Lucwousin/boo-strap
bootstrap: Halve plugin class in size
This commit is contained in:
@@ -1,85 +1,42 @@
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.get
|
||||
import org.gradle.kotlin.dsl.register
|
||||
import java.io.File
|
||||
import org.gradle.kotlin.dsl.*
|
||||
|
||||
class BootstrapPlugin : Plugin<Project> {
|
||||
override fun apply(project: Project) {
|
||||
project.tasks.register<BootstrapTask>("bootstrapStaging") {
|
||||
dependsOn("jar")
|
||||
dependsOn("shadowJar")
|
||||
|
||||
type = "staging"
|
||||
clientJar = project.tasks["jar"].outputs.files.singleFile
|
||||
|
||||
dependsOn(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":http-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
doLast {
|
||||
|
||||
project.copy {
|
||||
from(project.tasks["jar"])
|
||||
from(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
from(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
from(project.parent!!.project(":http-api").tasks["jar"])
|
||||
from(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
into("${project.buildDir}/bootstrap/${type}/")
|
||||
}
|
||||
}
|
||||
override fun apply(project: Project): Unit = with(project) {
|
||||
val clientJar by configurations.creating {
|
||||
isCanBeConsumed = false
|
||||
isCanBeResolved = true
|
||||
isTransitive = false
|
||||
}
|
||||
val bootstrapDependencies by configurations.creating {
|
||||
extendsFrom(clientJar)
|
||||
isCanBeConsumed = false
|
||||
isCanBeResolved = true
|
||||
isTransitive = false
|
||||
}
|
||||
|
||||
project.tasks.register<BootstrapTask>("bootstrapStable") {
|
||||
dependsOn("jar")
|
||||
dependsOn("shadowJar")
|
||||
|
||||
type = "stable"
|
||||
clientJar = project.tasks["jar"].outputs.files.singleFile
|
||||
|
||||
dependsOn(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":http-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
doLast {
|
||||
|
||||
project.copy {
|
||||
from(project.tasks["jar"])
|
||||
from(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
from(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
from(project.parent!!.project(":http-api").tasks["jar"])
|
||||
from(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
into("${project.buildDir}/bootstrap/${type}/")
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
clientJar(tasks["jar"].outputs.files)
|
||||
bootstrapDependencies(project(":runelite-api"))
|
||||
bootstrapDependencies(project(":runescape-api"))
|
||||
bootstrapDependencies(project(":http-api"))
|
||||
bootstrapDependencies(project(":injected-client"))
|
||||
}
|
||||
|
||||
project.tasks.register<BootstrapTask>("bootstrapNightly") {
|
||||
dependsOn("jar")
|
||||
dependsOn("shadowJar")
|
||||
tasks.register<BootstrapTask>("bootstrapStaging", "staging")
|
||||
tasks.register<BootstrapTask>("bootstrapNightly", "nightly")
|
||||
tasks.register<BootstrapTask>("bootstrapStable", "stable")
|
||||
|
||||
type = "nightly"
|
||||
clientJar = project.tasks["jar"].outputs.files.singleFile
|
||||
tasks.withType<BootstrapTask> {
|
||||
dependsOn(bootstrapDependencies)
|
||||
|
||||
dependsOn(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":http-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
this.clientJar = clientJar.singleFile
|
||||
|
||||
doLast {
|
||||
|
||||
project.copy {
|
||||
from(project.tasks["jar"])
|
||||
from(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
from(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
from(project.parent!!.project(":http-api").tasks["jar"])
|
||||
from(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
into("${project.buildDir}/bootstrap/${type}/")
|
||||
copy {
|
||||
from(bootstrapDependencies)
|
||||
into("${buildDir}/bootstrap/${type}/")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.InputFile
|
||||
import org.gradle.api.tasks.Optional
|
||||
import org.gradle.api.tasks.PathSensitive
|
||||
import org.gradle.api.tasks.PathSensitivity
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
@@ -9,12 +8,9 @@ import org.gradle.kotlin.dsl.extra
|
||||
import org.gradle.kotlin.dsl.get
|
||||
import java.io.File
|
||||
import java.security.MessageDigest
|
||||
import javax.inject.Inject
|
||||
|
||||
open class BootstrapTask : DefaultTask() {
|
||||
|
||||
@Input
|
||||
@Optional
|
||||
var type: String? = "stable"
|
||||
open class BootstrapTask @Inject constructor(@Input val type: String) : DefaultTask() {
|
||||
|
||||
@InputFile
|
||||
@PathSensitive(PathSensitivity.ABSOLUTE)
|
||||
@@ -42,10 +38,11 @@ open class BootstrapTask : DefaultTask() {
|
||||
project.configurations["runtimeClasspath"].resolvedConfiguration.resolvedArtifacts.forEach {
|
||||
val module = it.moduleVersion.id.toString()
|
||||
|
||||
val name = module.split(":")[1]
|
||||
val group = module.split(":")[0]
|
||||
val version = module.split(":")[2]
|
||||
var path = ""
|
||||
val splat = module.split(":")
|
||||
val name = splat[1]
|
||||
val group = splat[0]
|
||||
val version = splat[2]
|
||||
lateinit var path: String
|
||||
|
||||
if (it.file.name.contains(ProjectVersions.rlVersion)) {
|
||||
path = "https://github.com/open-osrs/hosting/raw/master/${type}/${it.file.name}"
|
||||
@@ -84,7 +81,7 @@ open class BootstrapTask : DefaultTask() {
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
fun boostrap() {
|
||||
fun bootstrap() {
|
||||
val json = JsonBuilder(
|
||||
"projectVersion" to ProjectVersions.openosrsVersion,
|
||||
"minimumLauncherVersion" to ProjectVersions.launcherVersion,
|
||||
|
||||
Reference in New Issue
Block a user