2022-06-26 14:56:53 +02:00
|
|
|
import dev.adamko.kafkatorio.factoriomod.FactorioMod
|
2021-12-01 18:12:34 +01:00
|
|
|
import dev.adamko.kafkatorio.gradle.asConsumer
|
|
|
|
|
import dev.adamko.kafkatorio.gradle.factorioModAttributes
|
2021-12-03 09:04:18 +01:00
|
|
|
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
2021-12-01 16:57:46 +01:00
|
|
|
|
|
|
|
|
plugins {
|
2022-03-09 21:40:40 +01:00
|
|
|
dev.adamko.kafkatorio.infra.`docker-compose`
|
2021-12-01 16:57:46 +01:00
|
|
|
}
|
|
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
2021-12-22 22:45:56 +01:00
|
|
|
val dockerSrcDir: Directory by extra
|
|
|
|
|
val factorioServerDataDir: Directory = dockerSrcDir.dir("factorio-server")
|
2021-12-01 16:57:46 +01:00
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
2021-12-01 16:57:46 +01:00
|
|
|
val factorioMod: Configuration by configurations.creating {
|
|
|
|
|
asConsumer()
|
|
|
|
|
factorioModAttributes(objects)
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
2021-12-01 16:57:46 +01:00
|
|
|
dependencies {
|
|
|
|
|
factorioMod(projects.modules.eventsMod)
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
2022-06-26 15:45:59 +02:00
|
|
|
val deployModToLocalServer by tasks.registering(Copy::class) {
|
2021-12-01 16:57:46 +01:00
|
|
|
description = "Copy the mod to the Factorio Docker server"
|
2022-06-26 14:56:53 +02:00
|
|
|
group = FactorioMod.TASK_GROUP
|
2021-12-01 16:57:46 +01:00
|
|
|
|
2021-12-28 17:24:20 +01:00
|
|
|
dependsOn(factorioMod)
|
|
|
|
|
|
2021-12-08 17:57:28 +01:00
|
|
|
from(
|
|
|
|
|
provider { factorioMod.incoming.artifacts.artifactFiles.files }
|
|
|
|
|
)
|
2021-12-01 16:57:46 +01:00
|
|
|
into(factorioServerDataDir.dir("mods"))
|
|
|
|
|
|
|
|
|
|
doLast {
|
2022-09-13 17:56:57 +02:00
|
|
|
logger.lifecycle("Copying mods ${source.files} into $destinationDir")
|
2021-12-01 16:57:46 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
2021-12-03 09:04:18 +01:00
|
|
|
tasks.dockerDown {
|
|
|
|
|
commandLine = parseSpaceSeparatedArgs(""" docker-compose stop """)
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
2021-12-02 00:54:15 +01:00
|
|
|
tasks.dockerUp {
|
2021-12-01 16:57:46 +01:00
|
|
|
dependsOn(
|
2022-06-26 15:45:59 +02:00
|
|
|
deployModToLocalServer,
|
2021-12-02 00:54:15 +01:00
|
|
|
":modules:infra-kafka-cluster:processRun",
|
2021-12-01 16:57:46 +01:00
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
2022-08-28 19:37:49 +02:00
|
|
|
val kafkatorioServerToken: String by project
|
|
|
|
|
|
|
|
|
|
|
2022-07-06 17:40:21 +02:00
|
|
|
tasks.dockerEnvUpdate {
|
2022-08-28 19:37:49 +02:00
|
|
|
properties(
|
|
|
|
|
"FACTORIO_VERSION" to libs.versions.factorio.get(),
|
|
|
|
|
"KAFKATORIO_TOKEN" to kafkatorioServerToken,
|
|
|
|
|
)
|
2021-12-01 16:57:46 +01:00
|
|
|
}
|
|
|
|
|
|
2022-06-26 14:56:53 +02:00
|
|
|
|
|
|
|
|
tasks.register(FactorioMod.PUBLISH_MOD_LOCAL_TASK_NAME) {
|
|
|
|
|
group = FactorioMod.TASK_GROUP
|
2022-06-26 15:45:59 +02:00
|
|
|
dependsOn(deployModToLocalServer)
|
2022-06-26 14:56:53 +02:00
|
|
|
}
|
2022-02-20 12:30:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
idea {
|
|
|
|
|
module {
|
|
|
|
|
excludeDirs.add(file("src/factorio-server"))
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-09-13 17:56:57 +02:00
|
|
|
|
|
|
|
|
val runFactorioServer by tasks.registering {
|
|
|
|
|
group = rootProject.name
|
|
|
|
|
|
|
|
|
|
dependsOn(tasks.processRun)
|
|
|
|
|
}
|