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